Cloud Dataproc ジョブのライフサイクル

このページでは、Cloud Dataproc ジョブの送信、実行、および完了に伴う一連の手順を示します。ジョブの抑制とデバッグについても説明します。

Cloud Dataproc ジョブフロー

  1. ユーザーが Cloud Dataproc にジョブを送信します。
  2. ジョブは、dataproc エージェントによって取得されることを待ちます。
    • ジョブが取得されると、JobStatus.StateRUNNING とマークされます。
    • エージェントの障害や Compute Engine ネットワークの障害などが原因でジョブが取得されない場合、そのジョブは ERROR とマークされます。
  3. エージェントは、ジョブを取得すると、Cloud Dataproc クラスタのマスターノード上にドライバを開始するために使用可能なリソースが十分にあることを確認します。
    • 十分なリソースが利用可能でない場合、ジョブは遅延(抑制)されます。 JobStatus.Substate にはジョブが QUEUED と表示され、Job.JobStatus.details に遅延の原因に関する情報が示されます。
  4. 十分なリソースが利用可能な場合、dataproc エージェントはジョブドライバのプロセスを開始します。
    • この段階では、通常、Apache Hadoop YARN で実行されているアプリケーションが 1 つ以上あります。ただし、ドライバが Cloud Storage ディレクトリのスキャンやその他の起動ジョブタスクの実行を終了するまで、Yarn アプリケーションが開始されないことがあります。
  5. dataproc エージェントは、ジョブの進捗状況、クラスタの指標、およびジョブに関連付けられた Yarn アプリケーションの最新情報を Cloud Dataproc に定期的に送信します(ジョブのモニタリングとデバッグをご覧ください)。
  6. Yarn アプリケーションが完了します。
    • ドライバがコレクションの実体化などのジョブ完了タスクを行っている間、ジョブは引き続き RUNNING と報告されます。
    • メインスレッドで処理または捕捉されない障害があると、ドライバがゾンビ状態(障害の原因に関する情報が提供されないまま、RUNNING とマークされる)になることがあります。
  7. ドライバが終了します。 dataproc エージェントによって Cloud Dataproc に完了が報告されます。
    • Cloud Dataproc によってジョブが DONE と報告されます。

ジョブのモニタリングとデバッグ

Cloud Dataproc ジョブを分析およびデバッグするには、gcloud コマンドライン ツール、Cloud Dataproc REST API、Google Cloud Platform Console を使用します。

gcloud コマンド

実行中のジョブの状態を調査するには:

gcloud dataproc jobs describe job-id

ジョブドライバ出力を表示するには、ジョブドライバ出力へのアクセスをご覧ください。

REST API

jobs.get を呼び出して、ジョブの JobStatus.StateJobStatus.SubstateJobStatus.detailsYarnApplication の各フィールドを調べます。

Console

ジョブドライバ出力を表示するには、ジョブドライバ出力へのアクセスをご覧ください。

Stackdriver Logging で dataproc エージェント ログを表示するには、ログビューアのクラスタ セレクタから [Cloud Dataproc クラスタ] → クラスタ名 → クラスタの UUID を選択します。

次に、ログセレクタを使用して google.dataproc.agent ログを選択します。

Stackdriver でログを表示する

ジョブが失敗した場合、Stackdriver Logging のジョブログにアクセスできます。

誰がジョブを送信したかを判別する

ジョブの詳細を検索すると、submittedBy 項目に、誰がジョブを送信したかが表示されます。たとえば、次のジョブ出力では、user@domain がサンプルジョブをクラスタに送信したことが示されています。

...
placement:
  clusterName: cluster-name
  clusterUuid: cluster-uuid
reference:
  jobId: job-uuid
  projectId: project
status:
  state: DONE
  stateStartTime: '2018-11-01T00:53:37.599Z'
statusHistory:
- state: PENDING
  stateStartTime: '2018-11-01T00:33:41.387Z'
- state: SETUP_DONE
  stateStartTime: '2018-11-01T00:33:41.765Z'
- details: Agent reported job success
  state: RUNNING
  stateStartTime: '2018-11-01T00:33:42.146Z'
submittedBy: user@domain
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Dataproc ドキュメント
ご不明な点がありましたら、Google のサポートページをご覧ください。