すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:Spark UI を使用したジョブの診断

最終更新日:Mar 13, 2026

Spark UI は、オープンソースの Spark ジョブを診断するための重要なツールです。本トピックでは、Spark UI を使用してジョブを診断する方法について説明します。

Spark UI を使用したジョブの診断

手順 1:リンクの取得

MaxCompute Spark LogView の URL を開いた後、Spark UI のリンクを取得できます。Spark UI は、オープンソースの Spark ジョブを診断するための重要なツールであり、ジョブのログを取得したり、ジョブが正しく送信・実行されたことを確認したりするために利用できます。

MaxCompute Spark LogView の URL の「まとめ」モジュールで、Spark UI リンク および History Server リンク を確認します(以下の図を参照):

image

  • Spark Web UI:ジョブが実行中のみアクセス可能です。現在のジョブ進捗状況やスレッドスタックなどの情報を含みます。

  • Spark History Server:ジョブ完了後にアクセス可能になります。ドライバーから History Server へイベントが送信されるまでに 1~3 分程度の遅延があります。そのため、追跡 URL を直後に開くと、「Application application_1560240626712_2078769635 not found.」というエラーが表示される場合があります。しばらく待ってから再度アクセスしてください。

    kube モードで History Server を表示するには、spark-defaults.conf 構成ファイル内の eventLog パラメーターを以下のように変更します:

    (必須) spark.eventLog.enabled = true 
    (必須) spark.eventLog.dir = /workdir/eventlog/
    (任意) spark.eventLog.compress = true
    (任意) spark.eventLog.overwrite = true

手順 2:Spark UI を使用した基本ジョブ情報の確認

リンクをコピーし、ブラウザに貼り付けます。以下の図に示すように、Spark Web UI が表示されます:

image

  • Environment タブをクリックして、構成済みの Spark パラメーターを確認します。

    Environment タブで、構成済みのパラメーターを確認し、すべての設定が有効になっていることを検証します。この問題は、通常 SPARK_HOME が未設定であるために発生し、その結果 spark-defaults.conf 構成ファイルが正しく読み込まれません。

  • Executors タブをクリックします。Dead ステータスのノードおよび Thread Dump に特に注意してください。

    image

    • [Logs-StdOut] ボタンをクリックして、ノードの標準出力結果を確認します。

    • [Logs-StdErr] ボタンをクリックして、ノードの log4j ログを確認します。

手順 3:Spark UI を使用したブロッキングまたは低速ジョブのトラブルシューティング

Spark UI を使用すると、実行中のタスクおよびそのステータスを確認できます。[Executors] タブでは、各エグゼキュータの [Thread Dump] ボタンをクリックすることで、そのスレッドスタックのスナップショットを表示できます。

  1. 実行中のジョブの Spark UI を開き、[Executors] タブに切り替えます。

    image

  2. ドライバーのスレッドまたはエグゼキュータのスレッドのいずれかが停止しているかを特定します。

    • 図では、Executor 59 に 1 つのアクティブなタスクがあります。これは、1 つのタスクがまだ完了していないことを意味します。該当するエグゼキュータの [Thread Dump] ボタンをクリックして、そのスレッドスタック情報を確認します。

    • すべてのエグゼキュータにおいてアクティブなタスク数が 0 の場合、すべてのエグゼキュータはアイドル状態です。この場合、現在のジョブはドライバーの実行ロジック内で停止している可能性が高いです。ドライバーの [Thread Dump] ボタンをクリックして、そのスレッドスタック情報を確認します。

    • ドライバーのメインスレッドは通常、以下のようになります:

      image

    • エグゼキュータの実行スレッドは通常、以下のようになります:

      image