Proses tugas Dataproc

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

Alur tugas Dataproc

  1. Pengguna mengirimkan tugas ke Dataproc.
  2. Tugas menunggu untuk diakuisisi oleh agen dataproc.
    • Jika tugas diperoleh, JobStatus.State ditandai sebagai RUNNING.
    • Jika tugas tidak diperoleh karena kegagalan agen, kegagalan jaringan Compute Engine, atau penyebab lainnya, tugas akan ditandai sebagai ERROR.
  3. Setelah tugas diperoleh oleh agen, agen akan memverifikasi bahwa resource yang tersedia di node master cluster Dataproc sudah memadai untuk memulai driver.
    • Jika sumber daya yang memadai tidak tersedia, tugas akan ditunda (di-throttle). JobStatus.Substate menampilkan tugas sebagai QUEUED, dan Job.JobStatus.details memberikan informasi tentang penyebab penundaan.
  4. Jika tersedia resource yang cukup, 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 pengemudi selesai memindai direktori Cloud Storage atau melakukan tugas tugas start-up lainnya.
  5. Agen dataproc secara berkala mengirimkan pembaruan ke Dataproc tentang progres tugas, metrik cluster, dan aplikasi Yarn yang terkait dengan tugas tersebut (lihat Pemantauan dan proses debug tugas).
  6. Aplikasi benang selesai.
    • Tugas terus dilaporkan sebagai RUNNING saat pengemudi melakukan tugas penyelesaian tugas apa pun, seperti merealisasikan koleksi.
    • Kegagalan yang tidak tertangani atau tidak tertangkap di thread Utama dapat menyebabkan driver dalam status zombie (ditandai sebagai RUNNING tanpa informasi mengenai penyebab kegagalan).
  7. Pengemudi keluar. dataproc agen melaporkan penyelesaian ke Dataproc.
    • Dataproc melaporkan tugas sebagai DONE.

Konkurensi pekerjaan

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 pada tugas serentak dihitung sebagai max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5). masterMemoryMb ditentukan oleh jenis mesin VM master. masterMemoryMbPerJob ditetapkan ke 1024 secara default, tetapi dapat dikonfigurasi saat pembuatan cluster dengan properti cluster dataproc:dataproc.scheduler.driver-size-mb.

Langkah berikutnya