Menskalakan cluster Dataproc

Setelah membuat cluster Dataproc, Anda dapat menyesuaikan ("menskalakan") cluster dengan menambah atau mengurangi jumlah node pekerja primer atau sekunder (penskalaan horizontal) di cluster. Anda dapat menskalakan cluster Dataproc kapan saja, bahkan saat tugas berjalan di cluster tersebut. 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 agar dapat menghemat uang (lihat Penghentian tuntas sebagai opsi untuk digunakan saat menurunkan ukuran cluster agar tidak kehilangan 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, Anda dapat meningkatkan/mengurangi ukuran cluster sekaligus, lalu mengurangi/meningkatkan ukurannya nanti.

Menggunakan Penskalaan

Ada tiga cara untuk menskalakan cluster Dataproc Anda:

  1. Gunakan alat command line gcloud di gcloud CLI.
  2. Edit konfigurasi cluster di Google Cloud Console.
  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 dihentikan, jumlah pekerja utama tetap sama.

gcloud

Untuk menskalakan cluster dengan gcloud dataproc cluster 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 utama 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 Detail cluster untuk cluster tersebut dari halaman Clusters di Google Cloud Console, lalu mengklik tombol Edit di tab Konfigurasi.
Masukkan nilai baru untuk jumlah node Pekerja dan/atau Node pekerja yang dapat dihentikan (masing-masing diperbarui menjadi "5" dan "2", di screenshot berikut).
Klik Simpan untuk mengupdate cluster.

Cara Dataproc memilih node cluster untuk dihapus

Pada cluster yang dibuat dengan versi gambar 1.5.83+, 2.0.57+, dan 2.1.5+, saat memperkecil cluster, Dataproc mencoba meminimalkan dampak penghapusan node terhadap aplikasi YARN yang berjalan dengan terlebih dahulu menghapus node yang tidak aktif, tidak responsif, dan tidak ada aktivitas, lalu menghapus node yang memiliki master aplikasi YARN yang paling sedikit berjalan dan container yang berjalan.

Penghentian Tuntas

Saat Anda mengurangi skala cluster, pekerjaan yang sedang berlangsung mungkin akan berhenti sebelum selesai. Jika Anda menggunakan Dataproc v 1.2 atau yang lebih baru, Anda dapat menggunakan Penghentian tuntas, yang menggabungkan Penghentian Baik 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 dihentikan (sekunder) terus menyediakan atau menghapus pekerja untuk mencapai ukuran yang diharapkan, bahkan setelah operasi penskalaan cluster ditandai selesai. Jika Anda berupaya menonaktifkan pekerja sekunder dengan baik dan menerima pesan error yang mirip dengan berikut ini:

"Grup pekerja sekunder tidak dapat diubah di luar Dataproc. Jika Anda baru saja membuat atau memperbarui cluster ini, tunggu beberapa menit sebelum menghentikannya dengan baik agar semua instance sekunder dapat bergabung atau keluar dari cluster. Ukuran grup pekerja sekunder yang diharapkan: x, ukuran sebenarnya: y",

tunggu beberapa menit, lalu ulangi permintaan penghentian tuntas.

Perhatikan juga:

  • Anda dapat menonaktifkan pekerja preemptible secara paksa kapan saja.
  • Anda menghentikan pekerja utama dengan baik kapan saja

Menggunakan Penghentian tuntas

Dataproc Graceful Decommissioning menggabungkan Penghentian tuntas YARN Node untuk menyelesaikan pekerjaan yang sedang berlangsung pada pekerja sebelum dihapus dari cluster Cloud Dataproc. Sebagai default, penghentian tuntas dinonaktifkan. Anda dapat mengaktifkannya dengan menyetel 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 cluster update dengan flag --graceful-decommission-timeout. Nilai waktu tunggu (string) dapat berupa nilai "0s" (default; penonaktifan paksa tidak halus) atau durasi positif yang terkait dengan waktu saat ini (misalnya, "3s"). Durasi maksimum 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; penonaktifan paksa tidak halus) atau durasi dalam detik (misalnya, "3s"). Durasi maksimum adalah 1 hari.

Konsol

Setelah cluster dibuat, Anda dapat memilih penghentian tuntas cluster dengan membuka halaman Detail cluster untuk cluster tersebut dari halaman Clusters Google Cloud Console, lalu mengklik tombol Edit di tab Konfigurasi.
Di bagian Graceful Decommissioning, centang kotak "Use aktual decommissioning", lalu pilih nilai waktu tunggu.
Klik Simpan untuk mengupdate cluster.

Cara membatalkan operasi scaledown penghentian halus

Pada cluster Dataproc yang dibuat dengan image versi 2.0.57+ atau 2.1.5+, Anda dapat menjalankan perintah gcloud dataproc operations cancel atau mengirimkan permintaan operations.cancel Dataproc API untuk membatalkan operasi penurunan skala penghentian secara halus.

Jika Anda membatalkan operasi scaledown penghentian halus:

  • pekerja dalam status DECOMMISSIONING ditugaskan kembali dan menjadi ACTIVE saat penyelesaian pembatalan operasi.

  • jika operasi scaledown 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 internal akan ditandai sebagai CANCELLED.