我想要收集資訊,以便在 Amazon EMR 中對 Spark SQL 查詢問題進行疑難排解。
解決方案
Spark SQL 完成的查詢位於 EMR 叢集 Spark 歷史記錄伺服器的應用程式使用者介面索引標籤上。如需詳細資訊,請參閱檢視持久性應用程式使用者介面。
若要存取完成的 Spark SQL 查詢,請執行下列動作:
- 在 Spark 歷史記錄伺服器上,選取 SQL/DataFrame 以檢視完成的 Spark SQL 查詢。
- 選取查詢的 Spark SQL 任務應用程式 ID,以在 Jobs (任務) 索引標籤上開啟完成的任務 ID 資訊。請注意,SQL 查詢可能有一個以上的任務 ID。
下列資訊可從 Job (任務) 索引標籤取得:
- 在 Jobs (任務) 索引標籤上,您可以查看任務的狀態、任務持續時間,以及關聯的 SQL 查詢。
- 在 Jobs (任務) 索引標籤上,您可以檢閱應用程式 ID 的時間表。時間表按時間順序顯示 Spark 執行程式的新增和移除。
- 向下捲動以查看 DAG (直接非循環圖)。DAG 是 Spark SQL 查詢的視覺化。您還可以看到 RDD 相依項的鏈結。
- 進一步捲動,以查看 Spark SQL 任務的完成階段。
- 選取階段 ID 說明,以查看查詢在所有任務中的總時間、地區層級摘要,以及關聯的任務 ID。階段檢視提供與此階段對應的所有 RDD 詳細資訊。此檢視還提供與高層級 Spark SQL 操作相關的低層級 RDD 操作的資訊。
- 展開按執行程式劃分的彙總指標,以檢視執行程式日誌。執行程式日誌提供有關 Spark SQL 任務的其他詳細資訊。下面是範例日誌:
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
如需詳細資訊,請參閱 Apache Spark 文件中 Web UI 章節的任務索引標籤。
相關資訊
檢查日誌檔案