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á.
Detalhes da aplicação Hive para versões anteriores da AMI do Amazon EMR
Arquivos de log
Com o uso das versões 2.x e 3.x da AMI do Amazon EMR, os logs 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
notaDesde esta desta versão, o Amazon EMR usa um nome de arquivo sem versionamento, |
| 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 as versões do Hive anteriores à versão 0.13.1 (versões da AMI do Amazon EMR anteriores à versão 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 versão 3.11.0 da AMI do Amazon EMR, use o seguinte:
set hive.hadoop.supports.splittable.combineinputformat=true;
Portas de serviço do Thrift
O Thrift é uma estrutura RPC que define um formato compacto de serialização de binários usado para manter 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
O Amazon EMR inclui uma instrução na linguagem de consulta Hive que recupera as partições de uma tabela dos dados de 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, tablerecover
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 comando a seguir, myKey substitua pelo nome do seu EC2 key pair e amzn-s3-demo-bucket substitua pelo nome do 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=HueName=HiveName=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://amzn-s3-demo-bucket/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 uma metastore localizada fora do cluster do EMR
-
Crie um banco de dados MySQL ou Aurora usando o Amazon RDS.
Para obter informações sobre como criar um banco de dados do Amazon RDS, consulte Conceitos básicos do Amazon RDS.
-
Modifique seus grupos de segurança para permitir conexões JDBC entre seu banco de dados e o grupo de segurança ElasticMapReduce-Master.
Para obter informações sobre como modificar os grupos de segurança quanto ao acesso, consulte Grupos de segurança do Amazon RDS no Guia do usuário do Amazon RDS.
-
Defina os valores de configuração do JDBC em
hive-site.xml:-
Crie um arquivo de configuração
hive-site.xmlcontendo 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 endereço DNS da instância do Amazon RDS que executa o banco de dados.usernameepasswordsão as credenciais do seu banco de dados. Para obter mais informações sobre como se conectar a instâncias de banco de dados MySQL e Aurora, consulte Conectar-se a uma instância de banco de dados executando o mecanismo de banco de dados MySQL e Conectar-se a um cluster de banco de dados do Aurora no Guia do usuário do Amazon RDS.Os drivers JDBC são instalados pelo Amazon EMR.
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.xmlem um local no Amazon S3, comos3://.amzn-s3-demo-bucket/hive-site.xml
-
-
Crie um cluster especificando a localização do Amazon S3 do arquivo
hive-site.xmlpersonalizado.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=HueName=HiveName=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://amzn-s3-demo-bucket/hive-site.xml","--hive-versions","latest"]
Conectar-se com o Hive usando JDBC
Para se conectar ao Hive por meio do JDBC você precisa fazer o download do driver do JDBC e instalar um cliente SQL. O exemplo a seguir demonstra o uso do SQL Workbench/J para se conectar ao Hive usando o JDBC.
Para fazer download dos drivers do JDBC
-
Faça o download e extraia os drivers apropriados para as versões do Hive que você deseja acessar. A versão do Hive depende da AMI escolhida na criação de um cluster do Amazon EMR.
-
Drivers JDBC do Hive 0.11.0: https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.11.0
-
Drivers JDBC do Hive 0.8.1: 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 Manual. Workbench/J -
Crie um túnel do SSH no 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 usuários do
sshdo Linux e comandos do PuTTY para usuários do WindowsComandos SSH do Linux Versão do Hive Command 0.13.1 ssh -o ServerAliveInterval=10 -ipath-to-key-file-N -L 10000:localhost:10000 hadoop@master-public-dns-name0.11.0 ssh -o ServerAliveInterval=10 -ipath-to-key-file-N -L 10004:localhost:10004 hadoop@master-public-dns-name0.8.1 ssh -o ServerAliveInterval=10 -ipath-to-key-file-N -L 10003:localhost:10003 hadoop@master-public-dns-name0.7.1 ssh -o ServerAliveInterval=10 -ipath-to-key-file-N -L 10002:localhost:10002 hadoop@master-public-dns-name0.7 ssh -o ServerAliveInterval=10 -ipath-to-key-file-N -L 10001:localhost:10001 hadoop@master-public-dns-name0,5 ssh -o ServerAliveInterval=10 -ipath-to-key-file-N -L 10000:localhost:10000 hadoop@master-public-dns-nameConfigurações do túnel no PuTTY do Windows Versão do Hive Configurações do túnel 0.13.1 Porta de origem: 10000 Destino ::10000 master-public-dns-name0.11.0 Porta de origem: 10004 Destino ::10004 master-public-dns-name0.8.1 Porta de origem: 10003 Destino ::10003 master-public-dns-name -
Adicione o driver do JDBC 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 Library (Biblioteca), clique no ícone Select the JAR file(s) (Selecionar os arquivos JAR).
-
Selecione arquivos JAR, conforme mostrado na tabela a seguir.
Versão do driver do Hive Arquivos JAR para adicionar 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.jar0.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.jar0.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.jar0.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.jar0.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.jar0,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.HS2Driver0.11.0 org.apache.hadoop.hive.jdbc.HiveDriver.jar0.8.1 org.apache.hadoop.hive.jdbc.HiveDriver.jar0.7.1 org.apache.hadoop.hive.jdbc.HiveDriver.jar0.7 org.apache.hadoop.hive.jdbc.HiveDriver.jar0,5 org.apache.hadoop.hive.jdbc.HiveDriver.jar
-
-
Quando você retornar para a caixa de diálogo Select Connection Profile (Selecionar perfil de conexão), verifique se o campo Driver está definido como Hive JDBC (JDBC do Hive) e forneça a string de conexão JDBC no campo URL de acordo com a tabela a seguir.
Versão do Hive String de conexão do JDBC 0.13.1 jdbc:hive2://localhost:10000/default0.11.0 jdbc:hive://localhost:10004/default0.8.1 jdbc:hive://localhost:10003/defaultSe o seu cluster usa a AMI versão 3.3.1 ou posterior, na caixa de diálogo Select Connection Profile (Selecionar perfil de conexão), digite
hadoopno campo Username (Nome de usuário).