Ich möchte Informationen sammeln, um Probleme mit meinen Spark-SQL-Abfragen in Amazon EMR zu beheben.
Lösung
Abgeschlossene Spark-SQL-Abfragen befinden sich unter der Registerkarte Anwendungsbenutzeroberflächen des Spark History Servers Ihres EMR-Clusters. Weitere Informationen finden Sie unter Dauerhafte Anwendungsbenutzeroberflächen anzeigen.
Gehen Sie wie folgt vor, um auf abgeschlossene Spark-SQL-Abfragen zuzugreifen:
- Wählen Sie auf dem Spark History Server SQL/DataFrame aus, um abgeschlossene Spark-SQL-Abfragen anzuzeigen.
- Wählen Sie die Spark SQL-Job- und Anwendungs-IDs der Abfrage aus, um die vollständigen Job-ID-Informationen unter der Registerkarte Aufträge zu öffnen. Beachten Sie, dass eine SQL-Abfrage mehr als eine Job-ID haben kann.
Die folgenden Informationen sind unter der Registerkarte Aufträge verfügbar:
- Auf der Registerkarte Aufträge können Sie den Status des Auftrags, die Auftragsdauer und die zugehörige SQL-Abfrage sehen.
- Auf der Registerkarte Aufträge können Sie die Zeitleiste der Anwendungs-ID überprüfen. Die Zeitleiste zeigt das Hinzufügen und Entfernen der Spark-Ausführers in chronologischer Reihenfolge an.
- 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-Auftrags zu sehen.
- Wählen Sie die Beschreibung der Stufen-ID aus, um die Gesamtzeit der Abfrage für alle Aufgaben, eine Zusammenfassung auf Lokalitätsebene und die zugehörige Job-ID anzuzeigen. Die Stufenansicht enthält Details zu allen RDDs, die dieser Phase entsprechen. Diese Ansicht enthält auch Informationen über den RDD-Vorgang auf unterer Ebene, der sich auf den übergeordneten Spark-SQL-Vorgang bezieht.
- Erweitern Sie Aggregierte Metrik nach Ausführer, um das Ausführer-Protokoll anzuzeigen. Das Ausführer-Protokoll enthält zusätzliche Details zum Spark-SQL-Auftrag. Im Folgenden 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 unter der Registerkarte Aufträge im Abschnitt Web-UI der Apache-Spark-Dokumentation.
Ähnliche Informationen
Untersuchen Sie die Protokolldateien