Menskalakan cluster Dataproc

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?

  1. untuk meningkatkan jumlah pekerja agar tugas berjalan lebih cepat
  2. 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).
  3. untuk meningkatkan jumlah node guna memperluas penyimpanan Hadoop Distributed Filesystem (HDFS) yang tersedia

Karena cluster dapat diskalakan lebih dari sekali, sebaiknya Anda meningkatkan/mengurangi ukuran cluster sekaligus, lalu mengurangi/meningkatkan ukuran nanti.

Menggunakan Penskalaan

Ada tiga cara untuk menskalakan cluster Dataproc:

  1. Gunakan alat command line gcloud di gcloud CLI.
  2. Edit konfigurasi cluster di konsol Google Cloud.
  3. 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
dengan cluster-name adalah nama cluster yang akan diperbarui, dan new-number-of-workers adalah jumlah node pekerja primer dan/atau sekunder yang diperbarui. Misalnya, untuk menskalakan cluster bernama "dataproc-1" agar menggunakan lima node pekerja utama, jalankan perintah berikut.
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", di 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 dapat 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 mengupdate 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 halus) 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 menjadi ACTIVE saat 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.