Tugas yang dapat dimulai ulang

Secara default, tugas Dataproc tidak akan dimulai ulang secara otomatis jika gagal. Dengan menggunakan setelan opsional, Anda dapat mengatur tugas untuk dimulai ulang jika gagal. Saat menetapkan tugas untuk dimulai ulang, tentukan jumlah maksimum percobaan ulang per jam (nilai maksimumnya adalah 10 percobaan ulang per jam) dan/atau jumlah total percobaan ulang maksimum (nilai maksimumnya adalah 240 total percobaan ulang).

Memulai ulang tugas akan mengurangi jenis kegagalan tugas yang umum, termasuk masalah kehabisan memori dan reboot mesin virtual Compute Engine yang tidak terduga. Tugas yang dapat dimulai ulang sangat berguna untuk tugas yang berjalan lama dan streaming. Misalnya, Anda dapat memulai ulang tugas streaming Spark yang berjalan di cluster Dataproc untuk memastikan tugas streaming tersebut tangguh.

Semantik tugas yang dapat dimulai ulang

Semantik berikut berlaku untuk melaporkan keberhasilan atau kegagalan tugas:

  • Tugas dilaporkan berhasil jika driver dihentikan dengan kode 0.
  • Tugas dilaporkan gagal jika:
    • Pengemudi berhenti dengan kode bukan nol lebih dari 4 kali dalam 10 menit.
    • Pengemudi berhenti dengan kode bukan nol, dan telah melampaui setelan max_failures_per_hour atau max_failures_total.
  • Tugas akan dimulai ulang jika pengemudi keluar dengan kode bukan nol, tidak thrashing, dan berada dalam setelan max_failures_per_hour dan max_failures_total.

Pertimbangan desain pekerjaan

  • Rancang tugas Anda untuk menangani proses mulai ulang dengan baik. Misalnya, jika tugas Anda menulis ke sebuah direktori, tugas Anda mengakomodasi kemungkinan bahwa direktori tersebut akan ada saat tugas dimulai ulang.
  • Tugas streaming Apache Spark yang checkpoint dapat dimulai ulang setelah gagal, tetapi tidak akan melaporkan status Yarn.

Membuat dan menggunakan tugas yang dapat dimulai ulang

Anda dapat menentukan berapa kali tugas dapat dimulai ulang per jam dan jumlah total percobaan ulang maksimum ketika mengirimkan tugas melalui alat command line gcloud gcloud CLI, Dataproc REST API, atau Konsol Google Cloud.

Contoh: Jika Anda ingin agar tugas dicoba lagi hingga 10 kali, tetapi tidak lebih dari 5 kali dalam satu jam, setel max-failures-total ke 10 dan max-failures-per-hour ke 5.

gcloud

Tentukan berapa kali tugas dapat dimulai ulang per jam (nilai maksimumnya adalah 10 percobaan ulang per jam) dan/atau jumlah maksimum percobaan ulang total (nilai maksimumnya adalah 240 percobaan ulang total) menggunakan tanda --max-failures-per-hour dan --max-failures-total.

gcloud dataproc jobs submit job type \
    --region=region \
    --max-failures-per-hour=number \
    --max-failures-total=number \
    ... other args

REST API

Tentukan berapa kali tugas dapat dimulai ulang per jam (nilai maksimalnya adalah 10 percobaan ulang per jam) dan/atau jumlah maksimum percobaan ulang total (nilai maksimumnya adalah 240 total percobaan ulang) dengan menetapkan kolom masing-masing Job.JobScheduling dan/atau maxFailuresTotal.maxFailuresPerHour

Contoh

POST /v1/projects/project-id/regions/us-central1/jobs:submit/
{
"projectId": "project-id",
"job": {
"placement": {
  "clusterName": "example-cluster"
},
"reference": {
  "jobId": "cea7ae0b...."
},
"sparkJob": {
  "args": [
    "1000"
  ],
  "mainClass": "org.apache.spark.examples.SparkPi",
  "jarFileUris": [
    "file:///usr/lib/spark/examples/jars/spark-examples.jar"
  ]
},
"scheduling": {
  "maxFailuresPerHour": 5
  "maxFailuresTotal": 10
}
}
}

Konsol

Anda dapat mengirimkan tugas yang dapat dimulai ulang dengan menentukan nilai max restart per jam di halaman Submit a job Dataproc (nilai maksimumnya adalah 10 kali per jam). Saat ini, setelan total mulai ulang maksimum tidak tersedia di Konsol Google Cloud.