Wie behebe ich eine fehlgeschlagene oder hängengebliebene Spark-SQL-Abfrage in Amazon EMR?
Lesedauer: 3 Minute
0
Ich möchte Informationen sammeln, um Probleme mit meinen Spark-SQL-Abfragen in Amazon EMR zu beheben.
Lösung
Die von Spark SQL abgeschlossenen Abfragen finden Sie auf der Registerkarte Benutzeroberflächen der Anwendung des Spark-Verlaufsservers Ihres EMR-Clusters. Weitere Informationen finden Sie unter Anzeigen von Benutzeroberflächen für persistente Anwendungen.
Gehen Sie wie folgt vor, um auf abgeschlossene Spark-SQL-Abfragen zuzugreifen:
- Wählen Sie auf dem Spark-Verlaufsserver SQL/DataFrame aus, um abgeschlossene Spark-SQL-Abfragen anzuzeigen.
- Wählen Sie die in der Abfrage die Job-Anwendungs-IDs von Spark SQL aus, um die vollständigen Job-ID-Informationen auf der Registerkarte Jobs zu öffnen. Beachten Sie, dass eine SQL-Abfrage mehr als eine Job-ID haben kann.
Die folgenden Informationen sind auf der Registerkarte Jobs verfügbar:
- Auf der Registerkarte Jobs können Sie den Status des Jobs, seine Dauer und die zugehörige SQL-Abfrage sehen.
- Auf der Registerkarte Jobs können Sie die Zeitleiste der Anwendungs-ID überprüfen. In der Zeitleiste werden das Hinzufügen und Entfernen der Spark-Executors in chronologischer Reihenfolge angezeigt.
- Scrollen Sie nach unten, um den DAG (Direct Acyclic Graph) zu sehen. Der DAG ist eine Visualisierung der Spark-SQL-Abfrage. Sie können auch die Kette der RDD-Abhängigkeiten sehen.
- Scrollen Sie weiter, um die abgeschlossenen Phasen des Spark-SQL-Jobs zu sehen.
- Wählen Sie die Beschreibung der Phasen-ID aus, um die Gesamtzeit der Abfrage für alle Aufgaben, eine Zusammenfassung auf Standortebene und die zugehörige Job-ID anzuzeigen. Die Phasen-Ansicht enthält Details zu allen RDDs, die dieser Phase entsprechen. Diese Ansicht enthält auch Informationen über den RDD-Vorgang auf niedrigerer Ebene, der sich auf den Spark-SQL-Vorgang auf höherer Ebene bezieht.
- Erweitern Sie Gesammelte Messung nach Executor, um das Protokoll des Executors anzuzeigen. Das Executor-Protokoll enthält zusätzliche Details zum Spark-SQL-Job.
Hier ist ein Beispiel-Protokoll:
23/01/17 18:10:17 INFO Executor: Finished task 0.0 in stage 16.0 (TID 16). 1882 bytes result sent to driver 23/01/17 18:10:17 INFO YarnCoarseGrainedExecutorBackend: Got assigned task 17 23/01/17 18:10:17 INFO Executor: Running task 0.0 in stage 17.0 (TID 17) 23/01/17 18:10:17 INFO TorrentBroadcast: Started reading broadcast variable 17 with 1 pieces (estimated total size 4.0 MiB) 23/01/17 18:10:17 INFO MemoryStore: Block broadcast_17_piece0 stored as bytes in memory (estimated size 7.2 KiB, free 4.8 GiB) 23/01/17 18:10:17 INFO TorrentBroadcast: Reading broadcast variable 17 took 8 ms 23/01/17 18:10:17 INFO MemoryStore: Block broadcast_17 stored as values in memory (estimated size 13.8 KiB, free 4.8 GiB) 23/01/17 18:10:17 INFO PythonRunner: Times: total = 52, boot = -31, init = 83, finish = 0 23/01/17 18:10:17 INFO Executor: Finished task 0.0 in stage 17.0 (TID 17). 1883 bytes result sent to driver 23/01/17 18:11:20 ERROR CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM 23/01/17 18:11:20 INFO MemoryStore: MemoryStore cleared 23/01/17 18:11:20 INFO BlockManager: BlockManager stopped 23/01/17 18:11:20 INFO ShutdownHookManager: Shutdown hook called
Ausführliche Informationen finden Sie in der Dokumentation von Apache Spark unter der Registerkarte Jobs im Abschnitt Web-UI.
Ähnliche Informationen
AWS OFFICIALAktualisiert vor 2 Jahren
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren