Untuk menghindari biaya Google Cloud pada cluster yang tidak aktif, atau kebutuhan untuk menghapus dan membuat ulang cluster guna menghindari biaya cluster, gunakan fitur penghentian terjadwal cluster Managed Service untuk Apache Spark, 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 kegagalan tugas yang sedang berjalan. Saat cluster dihentikan, Anda tidak dapat mengupdate cluster, mengirim tugas ke cluster, atau mengakses komponen opsional di cluster menggunakan Managed Service untuk Apache Spark Component Gateway. 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+, serta 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 worker 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.
- Meskipun Anda dapat memperbarui konfigurasi penghentian terjadwal cluster, operasi penghentian yang dimulai akan terus berlanjut. Untuk memeriksa apakah operasi penghentian telah dimulai, periksa log cluster di Cloud Logging.
- Memperbarui jadwal penghentian di cluster yang telah melewati waktu penghentian terjadwal akan menghapus konfigurasi penghentian terjadwal. Untuk mengaktifkan kembali penghentian terjadwal, sertakan waktu mendatang dalam permintaan pembaruan Anda.
Tindakan yang menonaktifkan penghentian terjadwal cluster
Saat cluster berjalan, tindakan berikut akan menonaktifkan penghentian terjadwal cluster hingga tindakan penonaktifan dibatalkan:
- Menghapus peran IAM Managed Service untuk Apache Spark Service Agent di akun layanan Dataproc Service Agent
- Menonaktifkan Managed Service untuk Apache Spark API di project cluster
- Mengaktifkan Kontrol Layanan VPC jika Managed Service untuk Apache Spark akun layanan agen layanan (Identitas bidang kontrol) tidak berada dalam batas perimeter
Perhitungan 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 dikecualikan dari perhitungan waktu tidak ada aktivitas)
- tidak ada tugas yang berjalan di cluster
- cluster tidak dalam status
STOPPED
Mengirim tugas ke cluster atau menghentikan cluster akan mereset perhitungan waktu tidak ada aktivitas.
Properti cluster dataproc:dataproc.cluster-ttl.consider-yarn-activity
memengaruhi perhitungan waktu tidak ada aktivitas cluster, sebagai berikut:
- Properti ini diaktifkan (ditetapkan ke
true) secara default. - Jika properti ini diaktifkan, aktivitas YARN dan Managed Service untuk Apache Spark Jobs API harus tidak ada aktivitas untuk memulai dan terus menambah perhitungan waktu tidak ada aktivitas cluster.
- Aktivitas YARN mencakup aplikasi YARN yang tertunda dan berjalan.
- Aktivitas Managed Service untuk Apache Spark Jobs API mencakup tugas yang tertunda dan berjalan yang dikirim ke Managed Service untuk Apache Spark Jobs API.
- Jika properti ini ditetapkan ke
false, perhitungan waktu tidak ada aktivitas cluster akan dimulai dan berlanjut hanya jika aktivitas Managed Service untuk Apache Spark Jobs API tidak ada aktivitas.
Menggunakan Penghentian Terjadwal Cluster
Google Cloud Konsol
Anda dapat menetapkan nilai penghentian terjadwal saat membuat cluster menggunakan konsol Google Cloud sebagai berikut:
- Buka halaman Create cluster.
- Di bagian Define cost control settings , pilih Set an optional retention policy to control costs, lalu pilih setelan penghentian cluster (atau penghapusan cluster).
gcloud CLI
Anda dapat menetapkan nilai penghentian terjadwal saat membuat cluster menggunakan Google Cloud CLI atau Managed Service untuk Apache Spark API. Setelah membuat cluster, Anda dapat mengupdate cluster untuk mengubah atau menghapus nilai penghentian terjadwal cluster yang sebelumnya ditetapkan di cluster.
| Flag | Deskripsi | Tingkat Perincian Terbaik | Nilai Min | Nilai Maks |
|---|---|---|---|---|
--stop-max-idle1 |
Berlaku untuk perintah pembuatan cluster dan update cluster.
Durasi dari saat cluster memasuki status tidak ada aktivitas
(setelah pembuatan atau startup) hingga saat cluster mulai berhenti.
Berikan durasi dalam IntegerUnit format, dengan unit dapat
berupa "s, m, h, d" (detik, menit, jam, hari, masing-masing). Contoh:
"30m" atau "1d" (30 menit atau 1 hari sejak cluster 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 cluster dan update cluster. Waktu untuk mulai menghentikan cluster dalam format datetime 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 detik | 10 menit dari waktu saat ini | 14 hari dari waktu saat ini |
--stop-max-age2 |
Berlaku untuk perintah pembuatan cluster dan update cluster.
Durasi dari saat mengirimkan permintaan pembuatan cluster
hingga saat cluster mulai berhenti. Berikan durasi
dalam IntegerUnit format, dengan unit 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 |
- Anda dapat meneruskan flag
stop-max-idledengan flagstop-expiration-timeataustop-max-agedalam permintaan pembuatan atau update cluster Anda. Yang pertama menjadi benar akan berlaku untuk menghentikan cluster. - Anda dapat meneruskan flag
stop-expiration-timeatau flagstop-max-ageke 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 mengupdate nilai penghentian terjadwal di cluster dengan menetapkan kolom dan nilai Managed Service untuk Apache Spark API ClusterLifecycleConfig yang tercantum dalam tabel berikut sebagai bagian dari permintaan API Managed Service untuk Apache Spark cluster.create atau cluster.patch.
| Flag | Deskripsi | Tingkat Perincian Terbaik | Nilai Min | Nilai Maks |
|---|---|---|---|---|
idleStopTtl1 |
Berlaku untuk perintah pembuatan cluster 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 cluster dan update cluster. Waktu untuk mulai menghentikan cluster. Berikan stempel waktu dalam RFC 3339 format 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 mengirimkan permintaan pembuatan atau update cluster hingga saat cluster mulai berhenti. Berikan durasi dalam detik dengan maksimal sembilan digit pecahan, diakhiri dengan 's'. Contoh: "3.5s". | 1 detik | 10 menit. Kirim permintaan cluster.patch dengan durasi kosong untuk membatalkan nilai autoStopTtl yang ditetapkan sebelumnya. |
14 hari |
- Anda dapat meneruskan flag
stop-max-idledengan flagstop-expiration-timeataustop-max-agedalam permintaan pembuatan atau update cluster Anda. Yang pertama menjadi benar akan berlaku untuk menghentikan cluster. - Anda dapat meneruskan flag
stop-expiration-timeatau flagstop-max-ageke 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 mengupdate cluster, perhatikan batasan berikut:
Periode
stop-max-idleharus lebih pendek dari atau sama dengan periodedelete-max-idle, atau periode yang dihasilkan daridelete-max-ageataudelete-expiration-time.stop-max-agedanstop-expiration-timeharus lebih baru daridelete-max-agedandelete-expiration-time.
Melihat setelan cluster Penghentian Terjadwal
Google Cloud Konsol
- Anda dapat melihat setelan penghentian terjadwal cluster dengan memilih nama cluster dari halaman Managed Service untuk Apache Spark Clusters di Google Cloud konsol.
- Dari halaman detail cluster, pilih tab Configuration. Buka daftar konfigurasi cluster untuk melihat setelan penghentian terjadwal.
gcloud CLI
Anda dapat menggunakan perintah gcloud dataproc clusters list untuk
mengonfirmasi bahwa cluster telah mengaktifkan penghentian terjadwal.
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. Managed Service untuk Apache Spark menghasilkan nilai idleStartTime, yang merupakan waktu mulai tidak ada aktivitas cluster terbaru.
Meskipun Managed Service untuk Apache Spark menghitung idleStartTime berdasarkan penghentian aktivitas tugas, mekanisme untuk menghentikan cluster terjadwal mempertimbangkan idleStartTime dan waktu mulai terakhir cluster.
Secara khusus, jika cluster dihentikan oleh pengguna atau oleh Managed Service untuk Apache Spark, perhitungan tidak ada aktivitas untuk fitur penghentian terjadwal akan direset. Artinya, hitungan mundur ke penghentian terjadwal akan dimulai ulang saat cluster berikutnya dimulai. Namun, idleStartTime itu sendiri tidak direset saat cluster yang dihentikan dimulai ulang. Cluster akan terus mencerminkan kejadian terakhir tidak ada aktivitas tugas sebelum penghentian.
Oleh karena itu, dua kondisi harus dipenuhi agar Managed Service untuk Apache Spark dapat menghentikan cluster berdasarkan idleStopTtl:
- Cluster harus tidak ada aktivitas selama durasi yang ditentukan oleh
idleStopTtlsejak terakhir kali dimulai. - Cluster harus tidak ada aktivitas selama durasi yang ditentukan oleh
idleStopTtlsejak resetidleStartTimeterakhir.
REST API
Anda dapat membuat
clusters.list
permintaan untuk mengonfirmasi bahwa cluster telah mengaktifkan penghentian terjadwal.