Comment utiliser les journaux pour résoudre les problèmes liés aux requêtes Hive dans Amazon EMR ?

Lecture de 4 minute(s)
0

Je rencontre des difficultés avec les requêtes Apache Hive dans Amazon EMR. Je souhaite collecter des journaux pour la résolution de ces problèmes.

Brève description

Amazon EMR prend en charge les méthodes suivantes pour utiliser Hive. Les étapes de résolution des problèmes diffèrent selon la méthode utilisée :

Résolution

Shell Hive

Les journaux Hive sont stockés dans les répertoires suivants sur le nœud principal du cluster. Pour plus d'informations, voir Afficher les fichiers journaux sur le nœud principal.

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

En fonction de l'endroit de la soumission votre requête Hive, vos journaux de requêtes sont enregistrés à différents emplacements sous /mnt/var/hive/ du nœud principal Amazon EMR. Les journaux situés à cet emplacement sont également transférés vers le LogURI Amazon S3 configuré lors de la création de cluster Amazon EMR.

Exemple :

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

Par exemple, si vous exécutez des requêtes depuis le shell Hive en tant que hadoop (utilisateur par défaut), les erreurs liées aux requêtes sont consignées dans le répertoire suivant :

[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

HiveServer2 permet à des clients tels que Beeline, JDBC, ODBC (via SQL Workbench/J, par exemple) d'exécuter des requêtes contre Hive.

Pour plus d'informations sur les clients pris en charge par HiveServer2, consultez les clients HiveServer2 sur le site Web de Confluence.

Vérifiez la présence d'erreurs dans les journaux hive-server2 suivant les conditions ci-dessous :

  • Résolution obligatoire d'une requête échouée et soumise par l'un de ces clients.
  • Impossible de vous connecter à Hive à partir de clients utilisant des pilotes 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

Notez que, par défaut, toutes les requêtes Hive sur Amazon EMR utilisent le moteur TEZ. La requête peut déclencher une application YARN. Quant à la résolution de l'échec d'une application YARN, consultez les journaux du conteneur YARN. Pour plus d'informations, consultez la section historique de l'application YARN dans cet article.

Étapes Amazon EMR

Vérifiez les journaux des étapes, qui sont situés dans /var/log/hadoop/steps/. Par exemple :

[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

Historique de l'application YARN

Le moyen le plus simple de consulter et de surveiller les détails liés à l'application YARN consiste à ouvrir d'abord la console Amazon EMR. Ensuite, consultez l'onglet Historique des applications de la page de détails du cluster. Pour plus d'informations, consultez Afficher l'historique de l'application.

Pour vérifier si des erreurs se sont produites dans une application Tez ou MapReduce qui s'exécute en arrière-plan lorsque vous exécutez une requête Hive, consultez les journaux de l'application YARN sur Amazon Simple Storage Service (Amazon S3). Pour plus d'informations, consultez Afficher les fichiers journaux archivés dans Amazon S3. Par exemple :

$ 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

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous que vous utilisez la version la plus récente d'AWS CLI.


Informations connexes

Comment résoudre les exceptions « OutOfMemoryError » de l'espace du tas Java Hive sur Amazon EMR qui se produisent lorsque Hive génère les résultats de requêtes ?

Erreurs de cluster Hive

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans