メインコンテンツまでスキップ

ジョブのタイムライン

Spark UIのジョブタイムラインには、どのジョブが実行されたか、各ジョブにどれくらいの時間がかかったか、ジョブやエグゼキューターが失敗したかどうかが表示されます。パイプラインやクエリーの実行が遅い、またはコストがかかる場合は、まずジョブのタイムラインを確認してください。タイムラインのパターンによって、次にこのガイドのどのページを読むべきかが決まります。

このページは、問題が失敗、アイドル時間、長時間のジョブ、多数の短時間のジョブのいずれであるかが判明する前の、調査の起動時に使用してください。Spark UIを開く方法については、Spark UIを開く方法を参照してください。

ジョブ タイムラインを開く方法​

Spark UIで、次のスクリーンショットで赤で強調表示されているように、[ Jobs ]をクリックし、[ Event Timeline ]をクリックします。次のタイムラインの例は、ドライバーとエグゼキューター 0 が追加されるタイミングを示しています。

ジョブのタイムライン

何を探すべきか​

次のセクションでは、パフォーマンスまたはコストの問題の原因を示すイベントタイムラインのパターンについて説明します。各セクションの最後には、そのパターンを診断するページへのLinkがあります。

注記

ジョブは、送信された瞬間から 実行中 として表示されます。最初のタスクの起動時ではありません。例えば、複数のスレッドとFuturesを使用してジョブを並列に送信すると、すべてのジョブが同時に起動されたように見えることがあります。これは予期された動作であり、それ自体に問題はありません。

ジョブの失敗またはエグゼキューターの失敗​

イベントタイムラインでは、失敗したジョブと削除されたエグゼキューターは赤いステータスで表示されます。たとえば:

失敗したジョブ

タイムラインに失敗したジョブや削除されたエグゼキューターが表示される場合は、「ジョブが失敗したかエグゼキューターが削除されました」を参照してください。

実行のギャップ​

1分以上のギャップを探してください。例:

ジョブギャップ

この例にはいくつかのギャップがあり、そのうちのいくつかは赤い矢印で強調表示されています。ドライバーが作業を調整するため、短いギャップが予想されます。1分以上のギャップがパイプラインの途中で発生した場合は、調査が必要です。クラスターが連続して実行されている場合、ギャップはワークロード間の停止するである可能性があります。違いを見分けるには、ギャップをワークロードの起動時刻と終了時刻と照らし合わせます。

タイムラインにパイプラインの中間に長い不明なギャップが表示される場合は、 「Spark ジョブ間のギャップ」を参照してください。

Long ジョブ​

1つまたは少数の長いジョブがタイムラインを支配していないか確認します。この例では、1つのジョブが他のジョブより時間がかかっているため、そのジョブを調査します:

ロングジョブ

実行時間の長いジョブを調査するには、それをクリックし、Sparkで実行時間の長いジョブを診断するを参照してください。

多くの小さなジョブ​

例えば、以下のように、小さなジョブによって占められるタイムラインを探します。

小さな仕事

それぞれの細い青色の線は、数秒以下で完了する小さなジョブです。

タイムラインに小さなジョブが多数表示される場合は、多数の小さな Spark ジョブを参照してください。

上記のどれでもない​

タイムラインが前のパターンと一致しない場合は、最も長いジョブを見つけます。ジョブを期間で並べ替え、最長のジョブの説明にあるLinkをクリックします。

最長のジョブの特定

最も長いジョブのページを開いた後、最も長いステージを調査します。Sparkの長いジョブの診断」を参照してください。