Como posso usar logs para solucionar problemas com consultas do Hive no Amazon EMR?

4 minuto de leitura
0

Estou tendo problemas com as consultas do Apache Hive no Amazon EMR. Quero coletar logs para poder solucionar esses problemas.

Breve descrição

O Amazon EMR oferece suporte aos seguintes métodos para trabalhar com o Hive. As etapas de solução de problemas variam dependendo do método usado:

Resolução

Shell do Hive

Os logs do Hive são armazenados nos seguintes diretórios no nó principal do cluster. Para obter mais informações, consulte Exibir arquivos de log no nó principal.

  • /mnt/var/log/hive/
  • /mnt/var/log/hive/user/

Com base em onde você enviou sua consulta do Hive, seus logs de consulta são registrados em locais diferentes em /mnt/var/hive/ do nó principal do Amazon EMR. Os logs nesse local também são enviados para o Amazon S3 LogUri que você configurou quando criou o cluster do Amazon EMR.

Exemplo:

s3://example-location/example-cluster-id/node/example-instance-id/applications/hive

Por exemplo, se você executar consultas no shell do Hive como hadoop (o usuário padrão), os erros de consulta serão registrados em log no seguinte diretório:

[hadoop@ip-172-xx-xx-x ~]$ cd /mnt/var/log/hive/user/hadoop
[hadoop@ip-172-xx-xx-x hadoop]$ tail -20 hive.log

Hue, JDBC ou ODBC

O HiveServer2 permite que clientes, como Beeline, JDBC, ODBC (via SQL Workbench/J, por exemplo) executem consultas no Hive.

Para obter mais informações sobre os clientes suportados pelo HiveServer2, consulte Clientes do HiveServer2 no site do Confluence.

Verifique se há erros nos logs hive-server2 nas seguintes condições:

  • Você precisa solucionar uma falha na consulta enviada por um desses clientes.
  • Você está tendo problemas para se conectar ao Hive a partir de clientes que usam os drivers JDBC ou ODBC.
[hadoop@ip-172-xx-xx-x ~]$ cd /mnt/var/log/hive/
[hadoop@ip-172-xx-xx-xxx hive]$ ls -ltr
total 52
-rw-r--r-- 1 hive hive 42 May 25 19:29 hive-server2.out
drwxrwxrwt 4 root root 30 May 25 19:29 user
-rw-r--r-- 1 hive hive 49075 May 25 19:29 hive-server2.log

[hadoop@ip-172-31-33-9 hive]$ tail -20 hive-server2.log

Por padrão, todas as consultas do Hive no Amazon EMR usam o mecanismo TEZ. A consulta pode acionar uma aplicação YARN. Para solucionar a falha de uma aplicação YARN, consulte os logs do contêiner do YARN. Para obter mais informações, consulte a seção Histórico da aplicação YARN neste artigo.

Etapas do Amazon EMR

Verifique os logs de etapas, que estão localizados em /var/log/hadoop/steps/. Por exemplo:

[hadoop@ip-172-xx-xx-x s-3C4CZ9G05FEAX]$cd /var/log/hadoop/steps/s-3C4CZ9G05FEAX
[hadoop@ip-172-xx-xx-x s-3C4CZ9G05FEAX]$ ls -ltr
total 12
-rw-rw-r-- 1 hadoop hadoop 0 May 25 21:09 syslog
-rw-rw-r-- 1 hadoop hadoop 1304 May 25 21:09 stdout
-rw-rw-r-- 1 hadoop hadoop 213 May 25 21:09 stderr
-rw-rw-r-- 1 hadoop hadoop 2589 May 25 21:09 controller

histórico da aplicação YARN

A maneira mais fácil de visualizar e monitorar os detalhes da aplicação YARN é abrir primeiro o console do Amazon EMR.Em seguida, verifique a guia Histórico da aplicação da página de detalhes do cluster. Para obter mais informações, consulte Exibir histórico da aplicação.

Para ver se ocorreram erros em uma aplicação Tez ou MapReduce executado em segundo plano quando você executa uma consulta do Hive, verifique os logs da aplicação YARN no Amazon Simple Storage Service (Amazon S3). Para obter mais informações, consulte Exibir arquivos de log arquivados no Amazon S3. Por exemplo:

$ aws s3 ls s3://aws-logs-223377617334-us-west-2/elasticmapreduce/j-3MCDUQO2MWNJ5/
                           PRE containers/
                           PRE node/
                           PRE steps/
$ aws s3 ls s3://aws-logs-223377617334-us-west-2/elasticmapreduce/j-3MCDUQO2MWNJ5/node/i-045d100a1fcd13ef2/
                           PRE applications/
                           PRE bootstrap-actions/
                           PRE daemons/
                           PRE provision-node/
                           PRE setup-devices/
$ aws s3 ls s3://aws-logs-223377617334-us-west-2/elasticmapreduce/j-3MCDUQO2MWNJ5/containers/application_123456789_0001/container_1527279117205_0001_01_000001/
2020-10-25 15:46:04 842 stdout.gz
2020-10-25 15:46:04 4089 syslog.gz

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.


Informações relacionadas

Como resolver as exceções de espaço de heap “OutOfMemoryError” Java do Hive no Amazon EMR que ocorrem quando o Hive gera os resultados da consulta?

Erros do cluster do Hive

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos