Come posso utilizzare i log per risolvere i problemi relativi alle query Hive in Amazon EMR?

4 minuti di lettura
0

Riscontro alcuni problemi con le query di Apache Hive in Amazon EMR. Desidero raccogliere i log in modo da poter risolvere questi problemi.

Descrizione breve

Amazon EMR supporta i seguenti metodi per lavorare con Hive. I passaggi per la risoluzione dei problemi variano a seconda del metodo utilizzato:

Risoluzione

Shell (interprete di comandi) Hive

I log Hive sono archiviati nelle seguenti directory nel nodo principale del cluster. Per ulteriori informazioni, consulta View log files on the master node.

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

A seconda di dove hai inviato la tua query Hive, i log della query vengono registrati in posizioni diverse in /mnt/var/hive/ nel nodo principale di Amazon EMR. I log in questa posizione vengono inviati anche al LogUri Amazon S3, che hai configurato durante la creazione del cluster Amazon EMR.

Esempio:

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

Ad esempio, se esegui delle query dalla shell (interprete di comandi) Hive come hadoop (l'utente predefinito), gli errori delle query vengono registrati nella seguente directory:

[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 oppure ODBC

HiveServer2 consente ai client come Beeline, JDBC, ODBC (ad esempio tramite SQL Workbench/J) di eseguire query su Hive.

Per ulteriori informazioni sui client supportati da HiveServer2, consulta Client HiveServer2 nel sito Web di Confluence.

Verifica la presenza di errori nei log di hive-server2 nelle seguenti condizioni:

  • Devi risolvere una query non riuscita inviata da uno di questi client.
  • Hai problemi di connessione ad Hive dai client che utilizzano driver JDBC oppure 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

Tieni presente che, per impostazione predefinita, tutte le query Hive in Amazon EMR utilizzano il motore TEZ. La query potrebbe attivare un'applicazione YARN. Per risolvere l'errore di un'applicazione YARN, consulta i log del container YARN. Per ulteriori informazioni, consulta la sezione relativa alla cronologia delle applicazioni YARN in questo articolo.

Passaggi in Amazon EMR

Controlla i log dei passaggi in /var/log/hadoop/steps/. Ad esempio:

[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

Cronologia delle applicazioni YARN

Il modo più semplice per visualizzare e monitorare i dettagli delle applicazioni YARN consiste nell'aprire prima la console Amazon EMR. Quindi, controlla la scheda Cronologia dell'applicazione nella pagina dei dettagli del cluster. Per ulteriori informazioni, consulta View application history.

Per determinare se si sono verificati errori in un'applicazione Tez o MapReduce eseguita in background durante una query Hive, controlla i log dell'applicazione YARN in Amazon Simple Storage Service (Amazon S3). Per ulteriori informazioni, consulta View log files archived to Amazon S3. Ad esempio:

$ 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

Nota: se si verificano errori durante l'esecuzione dei comandi dell’interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.


Informazioni correlate

How do I resolve "OutOfMemoryError" Hive Java heap space exceptions on Amazon EMR that occur when Hive outputs the query results?

Hive cluster errors

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa