Setelah membuat cluster Managed Service untuk Apache Spark, Anda dapat menyesuaikan ("menskalakan") cluster dengan menambah atau mengurangi jumlah node pekerja primer atau sekunder (penskalaan horizontal) di cluster. Anda dapat menskalakan cluster Managed Service untuk Apache Spark 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.
Anda dapat menskalakan cluster Managed Service untuk Apache Spark untuk hal berikut:
- untuk meningkatkan jumlah pekerja agar tugas berjalan lebih cepat.
- untuk mengurangi jumlah pekerja agar menghemat uang (lihat Penghentian Tuntas sebagai opsi yang dapat digunakan saat memperkecil ukuran cluster untuk menghindari hilangnya pekerjaan yang sedang berlangsung).
- untuk meningkatkan jumlah node guna memperluas penyimpanan Hadoop Distributed File System (HDFS) yang tersedia.
Karena cluster dapat diskalakan lebih dari satu kali, Anda mungkin ingin menambah atau mengurangi ukuran cluster pada satu waktu, lalu mengurangi atau menambah ukuran nanti.
Menggunakan penskalaan
Ada tiga cara untuk menskalakan cluster Managed Service untuk Apache Spark:
- Menggunakan alat
gcloudcommand line di gcloud CLI. - Mengedit konfigurasi cluster di Google Cloud konsol.
- Menggunakan 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 primer atau jumlah pekerja sekunder (preemptible), atau keduanya. Misalnya, jika Anda hanya menskalakan jumlah pekerja preemptible, jumlah pekerja primer akan tetap sama.
gcloud
Untuk menskalakan cluster dengangcloud 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 Detail cluster untuk cluster dari halaman Google Cloud konsol Cluster, lalu mengklik tombol Edit di tab Konfigurasi.
Masukkan nilai baru untuk jumlah Node pekerja dan/atau
Node pekerja preemptible (diupdate menjadi "5" dan "2", masing-masing,
dalam screenshot berikut).
Klik Simpan untuk mengupdate cluster.
Cara Managed Service untuk Apache Spark memilih node cluster untuk dihapus
Di cluster yang dibuat dengan versi image 1.5.83+, 2.0.57+, dan 2.1.5+, saat memperkecil skala cluster, Managed Service untuk Apache Spark akan mencoba meminimalkan dampak penghapusan node pada aplikasi YARN yang berjalan dengan menghapus node yang tidak aktif, tidak sehat, dan tidak digunakan terlebih dahulu, lalu menghapus node dengan master aplikasi YARN dan container yang berjalan paling sedikit.
Penghentian tuntas
Saat Anda memperkecil skala cluster, pekerjaan yang sedang berlangsung mungkin akan berhenti sebelum selesai. Jika Anda menggunakan Managed Service untuk Apache Spark 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 Managed Service untuk Apache Spark Cloud.
Penghentian tuntas dan pekerja sekunder
Grup pekerja preemptible (sekunder) akan terus menyediakan atau menghapus pekerja untuk mencapai ukuran yang diharapkan meskipun setelah operasi penskalaan cluster ditandai selesai. Jika Anda mencoba menghentikan pekerja sekunder secara tuntas
dan menerima pesan error yang mirip dengan yang berikut:
"Secondary
worker group cannot be modified outside of Managed Service for Apache Spark. If you recently
created or updated this cluster, wait a few minutes before gracefully
decommissioning to allow all secondary instances to join or leave the cluster.
Expected secondary worker group size: x, actual size: y",
tunggu
beberapa menit, lalu ulangi permintaan penghentian tuntas.
Menggunakan penghentian tuntas
Penghentian Tuntas Managed Service untuk Apache Spark menggabungkan Penghentian Tuntas Node YARN untuk menyelesaikan pekerjaan yang sedang berlangsung pada pekerja sebelum dihapus dari cluster Managed Service untuk Apache Spark Cloud. Secara default, penghentian tuntas dinonaktifkan. Anda dapat mengaktifkannya dengan menetapkan nilai waktu tunggu saat mengupdate cluster untuk menghapus satu atau beberapa pekerja dari cluster.
gcloud
Saat 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 tuntas) atau durasi positif 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 tuntas) atau durasi dalam detik (misalnya, "3s"). Durasi maksimumnya adalah 1 hari.Konsol
Setelah cluster dibuat, Anda dapat memilih penghentian tuntas a cluster dengan membuka halaman Detail cluster untuk cluster dari halaman Google Cloud konsol Cluster, lalu mengklik tombol Edit di tab Konfigurasi.
Di bagian Penghentian Tuntas, pilih
Gunakan penghentian tuntas, lalu pilih nilai waktu tunggu.
Klik Simpan untuk mengupdate cluster.
Membatalkan operasi penurunan skala penghentian tuntas
Di cluster Managed Service untuk Apache Spark yang dibuat dengan versi image
2.0.57+
atau 2.1.5+,
Anda dapat menjalankan perintah gcloud dataproc operations cancel
atau mengirimkan permintaan Managed Service untuk Apache Spark API
operations.cancel
untuk membatalkan operasi penurunan skala penghentian tuntas.
Saat Anda membatalkan operasi penurunan skala penghentian tuntas:
pekerja dalam status
DECOMMISSIONINGakan ditugaskan kembali dan menjadiACTIVEsetelah pembatalan operasi selesai.jika operasi penurunan skala mencakup update label, update tersebut mungkin tidak berlaku.
Untuk memverifikasi status permintaan pembatalan, Anda dapat
menjalankan perintah gcloud dataproc operations describe
atau mengirimkan permintaan operations.get
Managed Service untuk Apache Spark API. Jika operasi pembatalan berhasil, status operasi dalam akan ditandai sebagai CANCELLED.