New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Wie kann ich Protokolle verwenden, um Probleme mit Hive-Abfragen in Amazon EMR zu beheben?
Ich habe Probleme mit Apache-Hive-Abfragen in Amazon EMR. Ich möchte Protokolle erfassen, um diese Probleme zu beheben.
Kurzbeschreibung
Amazon EMR unterstützt die folgenden Methoden für die Arbeit mit Hive. Die Schritte zur Fehlerbehebung unterscheiden sich je nachdem, welche Methode Sie verwenden:
- Hive Shell
- Hadoop User Experience (Hue), Java Database Connectivity (JDBC) oder Open Database Connectivity (ODBC) (wird mit Clients wie Beeline und SQL Workbench/J verwendet)
- Schritte für Amazon EMR
- YARN-Anwendungen
Lösung
Hive Shell
Hive-Protokolle werden in den folgenden Verzeichnissen auf dem Hauptknoten des Clusters gespeichert. Weitere Informationen finden Sie unter Protokolldateien über den Hauptknoten anzeigen.
- /mnt/var/log/hive/
- /mnt/var/log/hive/user/
Je nachdem, wo Sie Ihre Hive-Anfrage getätigt haben, werden Ihre Abfrageprotokolle an verschiedenen Orten unter /mnt/var/hive/ des Amazon-EMR-Hauptknotens protokolliert. Protokolle an diesem Speicherort werden auch an die Amazon S3 LogUri weitergeleitet, die Sie bei der Erstellung des Amazon EMR Clusters konfiguriert haben.
Beispiel:
s3://example-location/example-cluster-id/node/example-instance-id/applications/hive
Wenn Sie beispielsweise Abfragen von der Hive-Shell aus als hadoop (dem Standardbenutzer) ausführen, werden Abfragefehler im folgenden Verzeichnis protokolliert:
[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 oder ODBC
HiveServer2 ermöglicht es Clients wie Beeline, JDBC oder ODBC (z. B. über SQL Workbench/J), Abfragen für Hive auszuführen.
Weitere Informationen zu Clients, die von HiveServer2 unterstützt werden, finden Sie auf der Confluence-Website unter HiveServer2 Clients.
Suchen Sie unter den folgenden Umständen in den Protokollen von hive-server2 nach Fehlern:
- Sie müssen ein Problem mit einer Anfrage beheben, die von einem dieser Clients ausgeführt wurde.
- Sie haben Probleme, von Clients aus, die JDBC- oder ODBC-Treiber verwenden, eine Verbindung zu Hive herzustellen.
[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
Beachten Sie, dass standardmäßig alle Hive-Abfragen auf Amazon EMR die TEZ Engine nutzen. Die Abfrage könnte eine YARN-Anwendung auslösen. Informationen zur Behebung des Fehlers einer YARN-Anwendung finden Sie in den YARN-Container-Protokollen. Weitere Informationen finden Sie im Abschnitt zum YARN-Anwendungsverlauf in diesem Artikel.
Schritte für Amazon EMR
Überprüfen Sie die Schrittprotokolle, die sich in /var/log/hadoop/steps/ befinden. Zum Beispiel:
[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
YARN-Anwendungsverlauf
Die einfachste Möglichkeit, YARN-Anwendungsdetails einzusehen und zu überwachen, besteht darin, zuerst die Amazon-EMR-Konsole zu öffnen.Schauen Sie dann auf der Detailseite des Clusters auf der Registerkarte Anwendungsverlauf nach. Weitere Informationen finden Sie unter Anwendungsverlauf anzeigen.
Um festzustellen, ob Fehler in einer Tez- oder MapReduce-Anwendung aufgetreten sind, die im Hintergrund ausgeführt wird, während Sie eine Hive-Abfrage ausführen, überprüfen Sie die YARN-Anwendungsprotokolle im Amazon Simple Storage Service (Amazon S3). Weitere Informationen finden Sie unter In Amazon S3 archivierte Protokolldateien anzeigen. Zum Beispiel:
$ 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
**Hinweis:**Wenn Sie beim Ausführen von Befehlen im AWS Command Line Interface (AWS CLI) Fehlermeldungen erhalten, stellen Sie sicher, dass Sie die neueste Version des AWS CLI verwenden.
Weitere Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 5 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren