Siklus proses tugas Dataproc

Halaman ini menjelaskan urutan langkah-langkah yang terlibat dalam pengiriman, eksekusi, dan penyelesaian tugas Dataproc. Bagian ini juga membahas throttling dan proses debug pekerjaan.

Alur tugas Dataproc

  1. Pengguna mengirimkan tugas ke Dataproc.
  2. Tugas menunggu untuk diperoleh oleh agen dataproc.
    • Jika tugas diperoleh, JobStatus.State akan ditandai sebagai RUNNING.
    • Jika tugas tidak diperoleh karena kegagalan agen, kegagalan jaringan Compute Engine, atau penyebab lainnya, tugas akan ditandai ERROR.
  3. Setelah tugas diperoleh oleh agen, agen akan memverifikasi bahwa ada resource yang memadai di node master cluster Dataproc untuk memulai driver.
    • Jika resource yang memadai tidak tersedia, tugas akan tertunda (dibatasi). JobStatus.Substate menampilkan tugas sebagai QUEUED, dan Job.JobStatus.details memberikan informasi tentang penyebab keterlambatan.
  4. Jika resource yang memadai tersedia, agen dataproc akan memulai proses driver tugas.
    • Pada tahap ini, biasanya ada satu atau beberapa aplikasi yang berjalan di Apache Hadoop YARN. Namun, aplikasi Yarn mungkin tidak dimulai hingga driver selesai memindai direktori Cloud Storage atau melakukan tugas tugas startup lainnya.
  5. Agen dataproc secara berkala mengirimkan update ke Dataproc tentang progres tugas, metrik cluster, dan aplikasi Yarn yang terkait dengan tugas (lihat Pemantauan dan proses debug tugas).
  6. Aplikasi benang selesai.
    • Tugas terus dilaporkan sebagai RUNNING saat driver melakukan tugas penyelesaian tugas, seperti mewujudkan koleksi.
    • Kegagalan yang tidak ditangani atau tidak tertangkap di Thread utama dapat membuat driver berada dalam status zombie (ditandai sebagai RUNNING tanpa informasi tentang penyebab kegagalan).
  7. Pengemudi keluar. Agen dataproc melaporkan penyelesaian ke Dataproc.
    • Dataproc melaporkan tugas sebagai DONE.

Konkurensi tugas

Anda dapat mengonfigurasi jumlah maksimum tugas Dataproc serentak dengan properti cluster dataproc:dataproc.scheduler.max-concurrent-jobs saat membuat cluster. Jika nilai properti ini tidak ditetapkan, batas atas tugas serentak dihitung sebagai max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5). masterMemoryMb ditentukan oleh jenis mesin VM master. masterMemoryMbPerJob adalah 1024 secara default, tetapi dapat dikonfigurasi saat pembuatan cluster dengan properti cluster dataproc:dataproc.scheduler.driver-size-mb.

Langkah berikutnya