Dataproc 工作的生命週期

本頁說明提交、執行和完成 Dataproc 工作所採取的步驟順序,以及工作調節和偵錯。

Dataproc 工作流程

  1. 使用者將工作提交給 Dataproc。
  2. 等待 dataproc 代理程式擷取工作。
    • 如果代理程式擷取到工作,JobStatus.State 會標示為 RUNNING
    • 如果因為代理程式失敗、Compute Engine 網路故障或其他因素,導致代理程式沒有擷取到工作,工作會標示為 ERROR
  3. 代理程式擷取到工作時,就會確認 Dataproc 叢集的主要節點上是否有足夠的資源,可用來啟動驅動程式。
  4. 如果可用資源充足,dataproc 代理程式會啟動工作驅動程式程序。
    • 在這個階段,通常會有至少一個應用程式在 Apache Hadoop YARN 中執行,但在驅動程式完成掃描 Cloud Storage 目錄或執行其他啟動工作之前,Yarn 應用程式無法啟動。
  5. dataproc 代理程式會定期將工作進度、叢集指標,以及與該工作相關聯的 Yarn 應用程式更新傳送給 Dataproc (請參閱工作監控和偵錯)。
  6. Yarn 應用程式執行完畢。
    • 當驅動程式執行任何工作完成作業 (例如將集合具體化) 時,系統會繼續將工作狀態回報為 RUNNING
    • 主執行緒中如有未處理或未偵測到的失敗,會導致驅動程式處於廢止狀態 (標示為 RUNNING 而不提供失敗原因的相關資訊)。
  7. 驅動程式結束。 dataproc 代理程式向 Dataproc 回報工作完成。
    • Dataproc 回報工作為 DONE

並行工作數量

建立叢集時,您可以使用 dataproc:dataproc.scheduler.max-concurrent-jobs 叢集屬性,設定並行 Dataproc 工作數量上限。如果未設定這個屬性值,並行工作的上限會計算為 max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5)masterMemoryMb 取決於主要 VM 的機器類型。masterMemoryMbPerJob 預設為 1024,但可使用 dataproc:dataproc.scheduler.driver-size-mb 叢集屬性在叢集建立時設定。

後續步驟