Amazon EMR で失敗またはスタックした Spark SQL クエリをトラブルシューティングする方法を教えてください。

所要時間2分
0

Amazon EMR の Spark SQL クエリに関する問題をトラブルシューティングするための情報を収集したいと考えています。

解決策

Spark SQL で完了したクエリは、EMR クラスターの Spark 履歴サーバーの [アプリケーションユーザーインターフェイス] タブにあります。詳しくは、「View persistent application user interfaces」を参照してください。

完了した Spark SQL クエリにアクセスするには、次の手順を実行します。

  1. Spark 履歴サーバーで [SQL/DataFrame] を選択すると、完了した Spark SQL クエリが表示されます。
  2. クエリの Spark SQL ジョブのアプリケーション ID を選択し、完了したジョブ ID の情報を [ジョブ] タブで開きます。SQL クエリには複数のジョブ ID が含まれる場合があることに注意してください。

[ジョブ] タブで確認できる情報は次の通りです。

  • [ジョブ] タブでは、ジョブのステータス、ジョブの継続時間、および関連する SQL クエリを確認できます。
  • [ジョブ] タブでは、アプリケーション ID のタイムラインも確認できます。タイムラインでは、Spark エグゼキューターの追加と削除が時系列で表示されます。
  • 下にスクロールすると、DAG (Direct Acyclic Graph) を確認できます。DAG は Spark の SQL クエリを可視化したものです。また、RDD の依存関係の連鎖も見ることができます。
  • さらにスクロールすると、Spark SQL ジョブの完了したステージも確認できます。
  • ステージ ID の説明を選択すると、すべてのタスクにわたるクエリの合計時間、地域レベルの概要、および関連するジョブ ID を確認できます。ステージビューには、このステージに対応するすべての RDD の詳細が表示されます。このビューには、上位レベルの Spark SQL の操作に関連する下位レベルの RDD の操作についての情報も表示されます。
  • [Aggregated Metric by Executor] を展開すると、[エグゼキュター] ログが表示されます。エグゼキュターログでは、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」セクションにある「Jobs Tab」を参照してください。

関連情報

ログファイルを確認する

AWS公式
AWS公式更新しました 1年前