Especificações do aplicativo Hive para AMI versões anteriores da Amazon EMR - Amazon EMR

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
nota

A partir desta versão, a Amazon EMR usa um nome de arquivo sem versão,. hive.log Versões secundárias compartilham o mesmo local de log que a versão principal.

0.11.0 hive_0110.log
nota

As 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
nota

As 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
nota

As 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 table e, portanto, 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-version 3.9 \ --applications Name=Hue Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type m3.xlarge --instance-count 3 \ --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
  1. 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.

  2. 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.

  3. Defina os valores JDBC de configuração emhive-site.xml:

    1. 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 e password 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. RDS

      Os 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.

    2. Salve o arquivo hive-site.xml em um local no Amazon S3, como s3://mybucket/hive-site.xml.

  4. 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-version 3.10 \ --applications Name=Hue Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type m3.xlarge --instance-count 3 \ --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
  1. 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.

  2. 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.

  3. 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 Windows

    SSHComandos do Linux
    Versã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 Pu
    Versão do Hive Configurações do túnel
    0.13.1 Porta de origem: 10000 Destino: master-public-dns-name: 10000
    0.11.0 Porta de origem: 10004 Destino: master-public-dns-name: 10004
    0.8.1 Porta de origem: 10003 Destino: master-public-dns-name: 10003
  4. Adicione o JDBC driver ao SQL Workbench.

    1. Na caixa de diálogo Select Connection Profile (Selecionar perfil de conexão), escolha Manage Drivers (Gerenciar drivers).

    2. Escolha o ícone Create a new entry (Criar uma nova entrada) (página em branco).

    3. No campo Name (Nome), digite Hive JDBC.

    4. Em Biblioteca, clique no ícone Selecionar o (s) JAR arquivo (s).

    5. 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
    6. 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
  5. 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.