Penghentian Terjadwal Cluster

Untuk menghindari timbulnya Google Cloud biaya untuk cluster yang tidak aktif, atau kebutuhan untuk menghapus dan membuat ulang cluster untuk menghindari timbulnya biaya cluster, gunakan fitur penghentian terjadwal cluster Dataproc, yang menghentikan semua VM cluster. Anda tidak dikenai biaya untuk VM yang dihentikan, tetapi biaya akan terus dikenakan untuk resource terkait, seperti persistent disk.

Menghentikan cluster akan menghentikan semua VM cluster dan menyebabkan semua tugas yang sedang berjalan gagal. Saat cluster dihentikan, Anda tidak dapat mengupdate cluster, mengirimkan tugas ke cluster, atau mengakses komponen opsional di cluster menggunakan Gateway Komponen Dataproc. Setelah menghentikan cluster, Anda dapat memulai ulang cluster, dan melanjutkan pekerjaan.

Penghentian terjadwal cluster tersedia untuk cluster yang dibuat dengan versi image 2.2.42+ , 2.1.76+, dan 2.0.57+, dan yang lebih baru.

Fitur

  • Anda dapat menghentikan cluster setelah periode tidak ada aktivitas yang ditentukan, pada waktu mendatang yang ditentukan, atau setelah periode yang ditentukan dari permintaan pembuatan cluster.

  • Penghentian terjadwal cluster mendukung cluster dengan pekerja sekunder dan cluster skala nol.

  • Anda dapat memperbarui atau membatalkan konfigurasi penghentian terjadwal cluster.

Batasan dan pertimbangan

  • Penghentian terjadwal cluster tidak didukung untuk cluster dengan SSD lokal.
  • Anda tidak dapat menetapkan nilai penghentian terjadwal cluster menggunakan konsol Google Cloud .
  • Meskipun Anda dapat memperbarui konfigurasi penghentian terjadwal cluster, operasi penghentian yang dimulai akan berlanjut. Untuk memeriksa apakah operasi penghentian telah dimulai, periksa log cluster di Cloud Logging.
  • Memperbarui jadwal penghentian pada cluster yang memiliki waktu penghentian terjadwal sebelumnya akan menghapus konfigurasi penghentian terjadwal. Untuk mengaktifkan kembali penghentian terjadwal, sertakan waktu mendatang dalam permintaan update Anda.

Tindakan yang menonaktifkan penghentian terjadwal cluster

Saat cluster berjalan, tindakan berikut akan menonaktifkan penghentian terjadwal cluster hingga tindakan penonaktifan dibatalkan:

Penghitungan waktu tidak ada aktivitas cluster

Agar cluster dianggap tidak ada aktivitas, kondisi berikut harus dipenuhi:

  • pembuatan cluster selesai (waktu yang diperlukan untuk penyediaan dan startup cluster tidak termasuk dalam penghitungan waktu tidak ada aktivitas)
  • tidak ada tugas yang berjalan di cluster
  • cluster tidak dalam status STOPPED

Mengirimkan tugas ke cluster atau menghentikan cluster akan mereset perhitungan waktu tidak ada aktivitas.

dataproc:dataproc.cluster-ttl.consider-yarn-activity Properti cluster memengaruhi penghitungan waktu tunggu cluster, sebagai berikut:

  • Properti ini diaktifkan (ditetapkan ke true) secara default.
  • Jika properti ini diaktifkan, aktivitas YARN dan Dataproc Jobs API harus tidak ada aktivitas agar dapat memulai dan terus menghitung waktu tunggu nonaktif cluster.
    • Aktivitas YARN mencakup aplikasi YARN yang tertunda dan sedang berjalan.
    • Aktivitas Dataproc Jobs API mencakup tugas yang tertunda dan sedang berjalan yang dikirimkan ke Dataproc Jobs API.
  • Jika properti ini disetel ke false, penghitungan waktu tunggu cluster akan dimulai dan berlanjut hanya saat aktivitas Dataproc Jobs API tidak ada.

Menggunakan Penghentian Terjadwal Cluster

gcloud CLI

Anda dapat menetapkan nilai penghentian terjadwal saat membuat cluster menggunakan Google Cloud CLI atau Dataproc API. Setelah membuat cluster, Anda dapat memperbarui cluster untuk mengubah atau menghapus nilai scheduledstop cluster yang sebelumnya ditetapkan di cluster.

Flag Deskripsi Perincian Terbaik Nilai Min Nilai Maksimum
--stop-max-idle1 Berlaku untuk perintah pembuatan dan update cluster. Durasi dari saat cluster memasuki status tidak ada aktivitas (setelah pembuatan atau startup) hingga saat cluster mulai berhenti. Berikan durasi dalam format IntegerUnit, dengan unitnya dapat berupa "s, m, h, d" (detik, menit, jam, hari). Contoh: "30m" atau "1d" (30 menit atau 1 hari sejak cluster menjadi tidak ada aktivitas). 1 detik 5 menit 14 hari
--no-stop-max-idle Hanya berlaku untuk perintah update cluster. Membatalkan penghentian terjadwal cluster dengan flag --stop-max-idle yang ditetapkan sebelumnya Tidak berlaku Tidak berlaku Tidak berlaku
--stop-expiration-time2 Berlaku untuk perintah pembuatan dan update cluster. Waktu untuk mulai menghentikan cluster dalam format tanggal dan waktu ISO 8601. Anda dapat membuat datetime dalam format yang benar menggunakan Timestamp Generator. Misalnya, "2017-08-22T13:31:48-08:00" menentukan waktu habis masa berlaku 13:21:48 di zona waktu UTC -8:00.1 detik10 menit dari waktu saat ini 14 hari dari waktu saat ini
--stop-max-age2 Berlaku untuk perintah pembuatan dan update cluster. Durasi dari saat mengirimkan permintaan pembuatan cluster hingga saat cluster mulai berhenti. Berikan durasi dalam format IntegerUnit, dengan unitnya dapat berupa "s, m, h, d" (detik, menit, jam, hari). Contoh: "30m": 30 menit dari sekarang; "1d": 1 hari dari sekarang. 1 detik 10 menit 14 hari
Catatan:
  1. Anda dapat meneruskan flag stop-max-idle dengan flag stop-expiration-time atau stop-max-age dalam permintaan pembuatan atau update cluster. Yang pertama menjadi benar akan berlaku untuk menghentikan cluster.
  2. Anda dapat meneruskan flag stop-expiration-time atau flag stop-max-age ke perintah pembuatan atau update cluster, tetapi tidak keduanya.

Contoh pembuatan cluster:

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --stop-max-idle=DURATION \
    --stop-expiration-time=TIME \
    ... other flags ...

Contoh update cluster:

Contoh:

gcloud dataproc clusters update CLUSTER_NAME \
    --region=REGION \
    --stop-max-idle=DURATION \
    --no-stop-max-age \
    ... other flags

REST API

Anda dapat membuat atau memperbarui nilai penghentian terjadwal pada cluster dengan menyetel kolom dan nilai ClusterLifecycleConfig Dataproc API yang tercantum dalam tabel berikut sebagai bagian dari permintaan API cluster.create atau cluster.patch Dataproc.

Flag Deskripsi Perincian Terbaik Nilai Min Nilai Maksimum
idleStopTtl1 Berlaku untuk perintah pembuatan dan update cluster. Durasi dari saat cluster memasuki status tidak ada aktivitas setelah cluster dibuat atau diupdate hingga saat cluster mulai berhenti. Berikan durasi dalam detik dengan maksimal sembilan digit pecahan, diakhiri dengan 's'. Contoh: "3.5s". Kirim permintaan cluster.patch dengan durasi kosong untuk membatalkan nilai idleDeleteTtl yang ditetapkan sebelumnya. 1 detik 5 menit
14 hari
autoStopTime2 Berlaku untuk perintah pembuatan dan update cluster. Waktu untuk mulai menghentikan cluster. Berikan stempel waktu dalam format RFC 3339 UTC "Zulu", akurat hingga nanodetik. Contoh: "2014-10-02T15:01:23.045123456Z". 1 detik 10 menit dari waktu saat ini 14 hari dari waktu saat ini
autoStopTtl2 Durasi dari saat pengiriman permintaan pembuatan atau update cluster hingga saat cluster mulai berhenti. Berikan durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan 's'. Contoh: "3.5s". 1 detik 10 menit.
Kirimkan permintaan cluster.patch dengan durasi kosong untuk membatalkan nilai autoStopTtl yang ditetapkan sebelumnya.
14 hari
Catatan:
  1. Anda dapat meneruskan flag stop-max-idle dengan flag stop-expiration-time atau stop-max-age dalam permintaan pembuatan atau update cluster. Yang pertama menjadi benar akan berlaku untuk menghentikan cluster.
  2. Anda dapat meneruskan flag stop-expiration-time atau flag stop-max-age ke perintah pembuatan atau update cluster, tetapi tidak keduanya.

Menggunakan penghentian terjadwal dengan penghapusan terjadwal

Jika Anda menggunakan penghentian terjadwal cluster dengan penghapusan terjadwal cluster, saat membuat atau memperbarui cluster, perhatikan batasan berikut:

  • Periode stop-max-idle harus lebih pendek atau sama dengan periode delete-max-idle, atau periode yang dihasilkan dari delete-max-age atau delete-expiration-time.

  • stop-max-age dan stop-expiration-time harus lebih baru dari delete-max-age dan delete-expiration-time.

Melihat setelan cluster Berhenti Terjadwal

gcloud CLI

Anda dapat menggunakan perintah gcloud dataproc clusters list untuk mengonfirmasi bahwa penghentian terjadwal diaktifkan untuk cluster.

 gcloud dataproc clusters list \
     --region=REGION

Contoh output:

...
NAME         WORKER_COUNT ... SCHEDULED_STOP
CLUSTER_ID   NUMBER       ... enabled
...

Anda dapat menggunakan perintah gcloud dataproc clusters describe untuk memeriksa setelan penghentian terjadwal LifecycleConfig cluster.

gcloud dataproc clusters describe CLUSTER_NAME \
    --region=REGION

Contoh output:

...
lifecycleConfig:
  autoStopTime: '2018-11-28T19:33:48.146Z'
  idleStopTtl: 1800s
  idleStartTime: '2018-11-28T18:33:48.146Z'
...

Nilai autoStopTime dan idleStopTtl ditetapkan oleh pengguna. Dataproc menghasilkan nilai idleStartTime, yang merupakan waktu mulai tidak ada aktivitas kluster terbaru.

Meskipun Dataproc menghitung idleStartTime berdasarkan penghentian aktivitas tugas, mekanisme untuk penghentian cluster terjadwal mempertimbangkan idleStartTime dan waktu mulai terakhir cluster. Secara khusus, jika cluster dihentikan oleh pengguna atau oleh Dataproc, penghitungan tidak ada aktivitas untuk fitur penghentian terjadwal akan direset. Artinya, hitung mundur ke perhentian terjadwal dimulai ulang saat cluster dimulai berikutnya. Namun, idleStartTime itu sendiri tidak direset saat cluster yang dihentikan dimulai ulang. Status ini terus mencerminkan kejadian terakhir tidak adanya aktivitas tugas sebelum penghentian.

Oleh karena itu, dua kondisi harus dipenuhi agar Dataproc menghentikan cluster berdasarkan idleStopTtl:

  1. Cluster harus dalam kondisi tidak ada aktivitas selama durasi yang ditentukan oleh idleStopTtl sejak terakhir kali dimulai.
  2. Cluster harus dalam kondisi tidak ada aktivitas selama durasi yang ditentukan oleh idleStopTtl sejak reset idleStartTime terakhir.

REST API

Anda dapat membuat permintaan clusters.list untuk mengonfirmasi bahwa penghentian terjadwal diaktifkan untuk cluster.