Setelah membuat cluster Dataproc, Anda dapat menyesuaikan ("menskalakan") cluster dengan menambah atau mengurangi jumlah node pekerja primer atau sekunder (penskalaan horizontal) dalam cluster. Anda dapat menskalakan cluster Dataproc kapan saja, bahkan saat tugas berjalan di cluster. Anda tidak dapat mengubah jenis mesin cluster yang ada (penskalaan vertikal). Untuk menskalakan secara vertikal, buat cluster menggunakan jenis mesin yang didukung, lalu migrasikan tugas ke cluster baru.
Mengapa perlu menskalakan cluster Dataproc?
- untuk meningkatkan jumlah pekerja agar tugas berjalan lebih cepat
- untuk mengurangi jumlah pekerja guna menghemat biaya (lihat Penghentian Operasi yang Lancar sebagai opsi yang dapat digunakan saat menskalakan cluster untuk menghindari hilangnya pekerjaan yang sedang berlangsung).
- untuk meningkatkan jumlah node guna memperluas penyimpanan Hadoop Distributed Filesystem (HDFS) yang tersedia
Karena cluster dapat diskalakan lebih dari sekali, sebaiknya Anda meningkatkan/menurunkan ukuran cluster sekaligus, lalu mengurangi/meningkatkan ukuran nanti.
Menggunakan Penskalaan
Ada tiga cara untuk menskalakan cluster Dataproc:
- Gunakan alat command line
gcloud
di gcloud CLI. - Edit konfigurasi cluster di konsol Google Cloud.
- Gunakan REST API.
Pekerja baru yang ditambahkan ke cluster akan menggunakan jenis mesin yang sama dengan pekerja yang ada. Misalnya, jika cluster dibuat dengan pekerja yang menggunakan jenis mesin n1-standard-8
, pekerja baru juga akan menggunakan jenis mesin n1-standard-8
.
Anda dapat menskalakan jumlah pekerja utama atau jumlah pekerja sekunder (preemptible), atau keduanya. Misalnya, jika Anda hanya menskalakan jumlah pekerja yang dapat di-preempt, jumlah pekerja primer akan tetap sama.
gcloud
Untuk menskalakan cluster dengan gcloud dataproc clusters update, jalankan perintah berikut.gcloud dataproc clusters update cluster-name \ --region=region \ [--num-workers and/or --num-secondary-workers]=new-number-of-workers
gcloud dataproc clusters update dataproc-1 \ --region=region \ --num-workers=5 ... Waiting on operation [operations/projects/project-id/operations/...]. Waiting for cluster update operation...done. Updated [https://dataproc.googleapis.com/...]. clusterName: my-test-cluster ... masterDiskConfiguration: bootDiskSizeGb: 500 masterName: dataproc-1-m numWorkers: 5 ... workers: - my-test-cluster-w-0 - my-test-cluster-w-1 - my-test-cluster-w-2 - my-test-cluster-w-3 - my-test-cluster-w-4 ...
REST API
Lihat clusters.patch.
Contoh
PATCH /v1/projects/project-id/regions/us-central1/clusters/example-cluster?updateMask=config.worker_config.num_instances,config.secondary_worker_config.num_instances { "config": { "workerConfig": { "numInstances": 4 }, "secondaryWorkerConfig": { "numInstances": 2 } }, "labels": null }
Konsol
Setelah cluster dibuat, Anda dapat menskalakan cluster dengan membuka halaman Cluster details untuk cluster dari halaman Konsol Google Cloud Clusters, lalu mengklik tombol Edit di tab Configuration. Masukkan nilai baru untuk jumlah Node pekerja dan/atau Node pekerja yang dapat di-preempt (masing-masing diperbarui menjadi "5" dan "2", dalam screenshot berikut). Klik Simpan untuk memperbarui cluster.Cara Dataproc memilih node cluster untuk dihapus
Pada cluster yang dibuat dengan versi image 1.5.83+, 2.0.57+, dan 2.1.5+, saat menskalakan cluster, Dataproc akan mencoba meminimalkan dampak penghapusan node pada aplikasi YARN yang berjalan dengan terlebih dahulu menghapus node yang tidak aktif, tidak sehat, dan tidak ada aktivitas, lalu menghapus node dengan master aplikasi YARN yang berjalan paling sedikit dan menjalankan penampung.
Penghentian Tuntas
Saat Anda menskalakan cluster ke bawah, pekerjaan yang sedang berlangsung mungkin berhenti sebelum selesai. Jika menggunakan Dataproc v 1.2 atau yang lebih baru, Anda dapat menggunakan Penghentian Tuntas, yang menggabungkan Penghentian Tuntas Node YARN untuk menyelesaikan pekerjaan yang sedang berlangsung pada pekerja sebelum dihapus dari cluster Cloud Dataproc.
Penghentian Tuntas dan Pekerja Sekunder
Grup pekerja yang dapat di-preempt (sekunder) terus menyediakan atau menghapus pekerja untuk mencapai ukuran yang diharapkan meskipun setelah operasi penskalaan cluster ditandai selesai. Jika Anda mencoba menonaktifkan pekerja sekunder dengan baik dan menerima pesan error yang mirip dengan yang berikut ini:
"Grup pekerja sekunder tidak dapat diubah di luar Dataproc. Jika Anda baru saja membuat atau memperbarui cluster ini, tunggu beberapa menit sebelum menghentikan layanan dengan baik untuk mengizinkan semua instance sekunder bergabung atau keluar dari cluster.
Ukuran grup pekerja sekunder yang diharapkan: x, ukuran sebenarnya: y",
tunggu
beberapa menit, lalu ulangi permintaan penghentian layanan yang wajar.
Perhatikan juga:
- Anda dapat menonaktifkan paksa pekerja preemptible kapan saja.
- Anda dapat menonaktifkan pekerja utama dengan baik kapan saja
Menggunakan Penghentian Tuntas
Penghentian Tuntas Dataproc menggabungkan Penghentian Tuntas Node YARN untuk menyelesaikan pekerjaan yang sedang berlangsung pada pekerja sebelum dihapus dari cluster Cloud Dataproc. Secara default, penghentian tuntas dinonaktifkan. Anda mengaktifkannya dengan menetapkan nilai waktu tunggu saat mengupdate cluster untuk menghapus satu atau beberapa pekerja dari cluster.
gcloud
Saat Anda mengupdate cluster untuk menghapus satu atau beberapa pekerja, gunakan perintah gcloud dataproc clusters update dengan flag--graceful-decommission-timeout
. Nilai waktu tunggu (string) dapat berupa nilai "0s" (default; penghentian paksa, bukan penghentian yang wajar) atau durasi positif yang relatif terhadap waktu saat ini (misalnya, "3s").
Durasi maksimumnya adalah 1 hari.
gcloud dataproc clusters update cluster-name \ --region=region \ --graceful-decommission-timeout="timeout-value" \ [--num-workers and/or --num-secondary-workers]=decreased-number-of-workers \ ... other args ...
REST API
Lihat clusters.patch.gracefulDecommissionTimeout. Nilai waktu tunggu (string) dapat berupa nilai "0" (default; penghentian paksa, bukan penghentian yang wajar) atau durasi dalam detik (misalnya, "3s"). Durasi maksimumnya adalah 1 hari.Konsol
Setelah cluster dibuat, Anda dapat memilih penghentian layanan yang wajar untuk cluster dengan membuka halaman Cluster details untuk cluster dari halaman Konsol Google Cloud Clusters, lalu mengklik tombol Edit di tab Configuration. Di bagian Penghentian Operasi yang Lancar, centang kotak "Gunakan penghentian operasi yang lancar", lalu pilih nilai waktu tunggu. Klik Simpan untuk memperbarui cluster.Cara membatalkan operasi penghentian tuntas pengurangan skala
Di cluster Dataproc yang dibuat dengan versi image
2.0.57+
atau 2.1.5+,
Anda dapat menjalankan perintah gcloud dataproc operations cancel
atau mengeluarkan permintaan
operations.cancel
Dataproc API untuk membatalkan operasi penghentian tuntas.
Jika Anda membatalkan operasi penskalaan turun penghentian tuntas:
pekerja dalam status
DECOMMISSIONING
akan diaktifkan kembali dan menjadiACTIVE
setelah pembatalan operasi selesai.jika operasi penskalaan ke bawah menyertakan pembaruan label, pembaruan tersebut mungkin tidak akan diterapkan.
Untuk memverifikasi status permintaan pembatalan, Anda dapat menjalankan perintah gcloud dataproc operations describe
atau mengeluarkan permintaan operations.get
Dataproc API. Jika operasi pembatalan berhasil, status operasi dalam akan ditandai
sebagai DIBATALKAN.