As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Especificações do aplicativo Hive para AMI versões anteriores da Amazon EMR
Arquivos de log
Usando EMR AMI as versões 2.x e 3.x da Amazon, os registros do Hive são salvos em. /mnt/var/log/apps/
Para oferecer suporte a versões simultâneas do Hive, a versão do Hive que você executa determina o nome do arquivo de log, conforme mostrado na tabela a seguir.
Versão do Hive | Nome do arquivo de log |
---|---|
0.13.1 | hive.log
notaA partir desta versão, a Amazon EMR usa um nome de arquivo sem versão,. |
0.11.0 | hive_0110.log
notaAs versões secundárias do Hive 0.11.0, como o Hive 0.11.0.1, compartilham o mesmo local de arquivo de log que o Hive 0.11.0. |
0.8.1 | hive_081.log
notaAs versões secundárias do Hive 0.8.1, como o Hive 0.8.1.1, compartilham o mesmo local de arquivo de log que o Hive 0.8.1. |
0.7.1 | hive_07_1.log
notaAs versões secundárias do Hive 0.7.1, como o Hive 0.7.1.3 e o Hive 0.7.1.4, compartilham o mesmo local de arquivo de log que o Hive 0.7.1. |
0.7 | hive_07.log |
0,5 | hive_05.log |
0.4 | hive.log |
Funcionalidade de entrada dividida
Para implementar a funcionalidade de entrada dividida usando versões do Hive anteriores à 0.13.1 (EMRAMIversões da Amazon anteriores à 3.11.0), use o seguinte:
hive> set hive.input.format=org.apache.hadoop.hive.ql.io.HiveCombineSplitsInputFormat; hive> set mapred.min.split.size=
100000000
;
Essa funcionalidade se tornou obsoleta com o Hive 0.13.1. Para obter a mesma funcionalidade de formato de entrada dividido na Amazon EMR AMI versão 3.11.0, use o seguinte:
set hive.hadoop.supports.splittable.combineinputformat=true;
Portas de serviço do Thrift
Thrift é uma RPC estrutura que define um formato compacto de serialização binária usado para persistir estruturas de dados para análise posterior. Normalmente, o Hive configura o servidor para operar nas seguintes portas.
Versão do Hive | Número da porta |
---|---|
Hive 0.13.1 | 10000 |
Hive 0.11.0 | 10004 |
Hive 0.8.1 | 10003 |
Hive 0.7.1 | 10002 |
Hive 0.7 | 10001 |
Hive 0.5 | 10000 |
Para obter mais informações sobre serviços do Thrift, consulte http://wiki.apache.org/thrift/
Usar o Hive para recuperar partições
A Amazon EMR inclui uma declaração na linguagem de consulta Hive que recupera as partições de uma tabela a partir dos dados da tabela localizados no Amazon S3. O exemplo a seguir mostra isso.
CREATE EXTERNAL TABLE (json string) raw_impression PARTITIONED BY (dt string) LOCATION 's3://elastic-mapreduce/samples/hive-ads/tables/impressions'; ALTER TABLE logs RECOVER PARTITIONS;
Os dados e diretórios da partição devem estar na localização especificada na definição de tabela e devem ser nomeados de acordo com a convenção do Hive: por exemplo, dt=2009-01-01
.
nota
Depois do Hive 0.13.1, esse recurso tem suporte nativamente usando msck
repair
e, portanto, table
recover
partitions
não tem suporte. Para obter mais informações, consulte https://cwiki.apache.org/confluence/display/Hive/ LanguageManual + DDL
Transmitir uma variável do Hive para um script
Para passar uma variável para uma etapa do Hive usando o AWS CLI, digite o seguinte comando, substitua myKey
com o nome do seu EC2 key pair e substitua mybucket
com o nome do seu bucket. Neste exemplo, SAMPLE
é um valor de variável precedido pela opção -d
. Essa variável é definida no script Hive como: ${SAMPLE}
.
nota
Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).
aws emr create-cluster --name "
Test cluster
" --ami-version3.9
\ --applications Name=Hue
Name=Hive
Name=Pig
\ --use-default-roles --ec2-attributes KeyName=myKey
\ --instance-typem3.xlarge
--instance-count3
\ --steps Type=Hive
,Name="Hive Program
",ActionOnFailure=CONTINUE
,\ Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/response-time-stats.q
,-d,\ INPUT=s3://elasticmapreduce/samples/hive-ads/tables
,-d,OUTPUT=s3://mybucket/hive-ads/output/
,\ -d,SAMPLE
=s3://elasticmapreduce/samples/hive-ads/
]
Especificar um local de metastore externo
O procedimento a seguir mostra como substituir os valores de configuração padrão para a localização da metastore do Hive e iniciar um cluster usando a localização da metastore reconfigurada.
Para criar um metastore localizado fora do cluster EMR
-
Crie um banco de dados My SQL ou Aurora usando a Amazon. RDS
Para obter informações sobre como criar um RDS banco de dados da Amazon, consulte Introdução à Amazon RDS.
-
Modifique seus grupos de segurança para permitir JDBC conexões entre seu banco de dados e o grupo de segurança ElasticMapReduce-Master.
Para obter informações sobre como modificar seus grupos de segurança para acesso, consulte Grupos de RDS segurança da Amazon no Guia RDS do usuário da Amazon.
-
Defina os valores JDBC de configuração em
hive-site.xml
:-
Crie um arquivo de configuração
hive-site.xml
contendo as seguintes informações:<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mariadb://
hostname
:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>Username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password
</value> <description>Password to use against metastore database</description> </property> </configuration>hostname
é o DNS endereço da RDS instância da Amazon que executa o banco de dados.username
epassword
são as credenciais do seu banco de dados. Para obter mais informações sobre como se conectar às instâncias de banco de dados My SQL e Aurora, consulte Conectando-se a uma instância de banco de dados executando o mecanismo de SQL banco de dados My e Conectando-se a um cluster de banco de dados Aurora no Guia do usuário da Amazon. RDSOs JDBC drivers são instalados pela AmazonEMR.
nota
A propriedade "value" não deve conter espaços ou retornos de carro. Eles devem aparecer todos em uma única linha.
-
Salve o arquivo
hive-site.xml
em um local no Amazon S3, comos3://
.mybucket/
hive-site.xml
-
-
Crie um cluster especificando a localização do Amazon S3 do arquivo
hive-site.xml
personalizado.O exemplo de comando a seguir demonstra um AWS CLI comando que faz isso.
nota
Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).
aws emr create-cluster --name "
Test cluster
" --ami-version3.10
\ --applications Name=Hue
Name=Hive
Name=Pig
\ --use-default-roles --ec2-attributes KeyName=myKey
\ --instance-typem3.xlarge
--instance-count3
\ --bootstrap-actions Name="Install Hive Site Configuration
",\ Path="s3://region
.elasticmapreduce/libs/hive/hive-script",\ Args=["--base-path","s3://elasticmapreduce/libs/hive","--install-hive-site",\ "--hive-site=s3://mybucket
/hive-site.xml","--hive-versions","latest"]
Conecte-se ao Hive usando JDBC
Para se conectar ao Hive via, é JDBC necessário baixar o JDBC driver e instalar um SQL cliente. O exemplo a seguir demonstra o uso do SQL Workbench/J para se conectar ao Hive usando. JDBC
Para baixar JDBC drivers
-
Faça o download e extraia os drivers apropriados para as versões do Hive que você deseja acessar. A versão do Hive difere dependendo da AMI que você escolher ao criar um EMR cluster da Amazon.
-
Controladores do Hive 0.11.0: JDBC https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.11.0
-
Controladores do Hive 0.8.1JDBC: https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.8.1
-
Instale o SQL Workbench/J. Para obter mais informações, consulte Instalando e iniciando o SQL Workbench/J no Manual do usuário do SQL Workbench/J
. -
Crie um SSH túnel para o nó principal do cluster. A porta de conexão é diferente dependendo da versão do Hive. Comandos de exemplo são fornecidos nas tabelas abaixo para
ssh
usuários de Linux e TTY comandos Pu para usuários de WindowsSSHComandos do LinuxVersão do Hive Comando 0.13.1 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10000:localhost:10000 hadoop@master-public-dns-name
0.11.0 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10004:localhost:10004 hadoop@master-public-dns-name
0.8.1 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10003:localhost:10003 hadoop@master-public-dns-name
0.7.1 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10002:localhost:10002 hadoop@master-public-dns-name
0.7 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10001:localhost:10001 hadoop@master-public-dns-name
0,5 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10000:localhost:10000 hadoop@master-public-dns-name
Configurações de TTY túnel do Windows PuVersão do Hive Configurações do túnel 0.13.1 Porta de origem: 10000 Destino: master-public-dns-name
: 100000.11.0 Porta de origem: 10004 Destino: master-public-dns-name
: 100040.8.1 Porta de origem: 10003 Destino: master-public-dns-name
: 10003 -
Adicione o JDBC driver ao SQL Workbench.
-
Na caixa de diálogo Select Connection Profile (Selecionar perfil de conexão), escolha Manage Drivers (Gerenciar drivers).
-
Escolha o ícone Create a new entry (Criar uma nova entrada) (página em branco).
-
No campo Name (Nome), digite
Hive JDBC
. -
Em Biblioteca, clique no ícone Selecionar o (s) JAR arquivo (s).
-
Selecione JAR os arquivos conforme mostrado na tabela a seguir.
Versão do driver do Hive JARarquivos a serem adicionados 0.13.1 hive_metastore.jar hive_service.jar HiveJDBC3.jar libfb303-0.9.0.jar libthrift-0.9.0.jar log4j-1.2.14.jar ql.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar TCLIServiceClient.jar
0.11.0 hadoop-core-1.0.3.jar hive-exec-0.11.0.jar hive-jdbc-0.11.0.jar hive-metastore-0.11.0.jar hive-service-0.11.0.jar libfb303-0.9.0.jar commons-logging-1.0.4.jar slf4j-api-1.6.1.jar
0.8.1 hadoop-core-0.20.205.jar hive-exec-0.8.1.jar hive-jdbc-0.8.1.jar hive-metastore-0.8.1.jar hive-service-0.8.1.jar libfb303-0.7.0.jar libthrift-0.7.0.jar log4j-1.2.15.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar
0.7.1 hadoop-0.20-core.jar hive-exec-0.7.1.jar hive-jdbc-0.7.1.jar hive-metastore-0.7.1.jar hive-service-0.7.1.jar libfb303.jar commons-logging-1.0.4.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar
0.7 hadoop-0.20-core.jar hive-exec-0.7.0.jar hive-jdbc-0.7.0.jar hive-metastore-0.7.0.jar hive-service-0.7.0.jar libfb303.jar commons-logging-1.0.4.jar slf4j-api-1.5.6.jar slf4j-log4j12-1.5.6.jar
0,5 hadoop-0.20-core.jar hive-exec-0.5.0.jar hive-jdbc-0.5.0.jar hive-metastore-0.5.0.jar hive-service-0.5.0.jar libfb303.jar log4j-1.2.15.jar commons-logging-1.0.4.jar
-
Na caixa de diálogo Please select one driver (Selecione um driver), selecione um driver de acordo com a tabela a seguir e clique em OK.
Versão do Hive Nome da classe do driver 0.13.1 com.amazon.hive.jdbc3.HS2Driver
0.11.0 org.apache.hadoop.hive.jdbc.HiveDriver.jar
0.8.1 org.apache.hadoop.hive.jdbc.HiveDriver.jar
0.7.1 org.apache.hadoop.hive.jdbc.HiveDriver.jar
0.7 org.apache.hadoop.hive.jdbc.HiveDriver.jar
0,5 org.apache.hadoop.hive.jdbc.HiveDriver.jar
-
-
Ao retornar à caixa de diálogo Selecionar Perfil de Conexão, verifique se o campo Driver está definido como Hive JDBC e forneça a cadeia de JDBC conexão no URLcampo de acordo com a tabela a seguir.
Versão do Hive JDBCcadeia de conexão 0.13.1 jdbc:hive2://localhost:10000/default
0.11.0 jdbc:hive://localhost:10004/default
0.8.1 jdbc:hive://localhost:10003/default
Se seu cluster usa a AMI versão 3.3.1 ou posterior, na caixa de diálogo Selecionar perfil de conexão, digite o
hadoop
campo Nome de usuário.