Pekerja sekunder Dataproc

Selain menggunakan VM Compute Engine standar sebagai pekerja Dataproc (disebut pekerja "utama"), cluster Dataproc dapat menggunakan pekerja secondary.

Karakteristik berikut berlaku untuk semua pekerja sekunder dalam cluster Dataproc:

  • Hanya pemrosesan—Pekerja sekunder tidak menyimpan data. Node ini hanya berfungsi sebagai node pemrosesan. Oleh karena itu, Anda dapat menggunakan pekerja sekunder untuk menskalakan komputasi tanpa menskalakan penyimpanan.

  • Tidak ada cluster khusus pekerja sekunder—Cluster Anda harus memiliki pekerja primer. Jika Anda membuat cluster dan tidak menentukan jumlah pekerja primer, Dataproc akan menambahkan dua pekerja primer ke cluster.

  • Jenis mesin—Secara default, pekerja sekunder menggunakan jenis mesin pekerja utama cluster. Misalnya, jika Anda membuat cluster dengan pekerja primer yang menggunakan jenis mesin n1-standard-4, secara default, semua pekerja sekunder yang ditambahkan ke cluster juga akan menggunakan mesin n1-standard-4.

    Daripada menggunakan jenis mesin pekerja utama default untuk pekerja sekunder, Anda dapat menentukan satu atau beberapa daftar jenis mesin yang diberi peringkat untuk pekerja sekunder. Lihat Dataproc Flexible VM untuk mengetahui informasi selengkapnya.

  • Ukuran persistent disk—Sebagai default, pekerja sekunder dibuat dengan ukuran disk booting pekerja utama atau 100 GB yang lebih kecil. Ruang disk ini digunakan untuk caching data lokal dan tidak tersedia melalui HDFS. Anda dapat mengganti ukuran disk default dengan perintah gcloud dataproc clusters create --secondary-worker-boot-disk-size saat membuat cluster. Anda dapat menentukan tanda ini meskipun cluster tidak akan memiliki pekerja sekunder saat dibuat.

  • Pembuatan Asinkron—Saat Anda menambahkan pekerja sekunder dengan membuat atau melakukan penskalaan cluster, pekerja sekunder mungkin tidak disediakan pada saat operasi pembuatan atau pembaruan selesai. Hal ini karena Dataproc mengelola pekerja sekunder menggunakan Grup Instance Terkelola (MIG), yang membuat VM secara asinkron segera setelah dapat disediakan (lihat Memeriksa status instance terkelola).

Pekerja sekunder preemptible dan non-preemptible

Ada tiga jenis pekerja sekunder: Spot VM, preemptible VM standar, dan VM non-preemptible. Jenis pekerja sekunder Dataproc default adalah VM preemptible standar. Anda dapat menentukan gabungan pekerja sekunder Spot dan pekerja sekunder yang tidak dapat di-preempt.

Contoh: Jika memilih tiga pekerja sekunder saat membuat cluster, Anda dapat menentukan tiga VM spot, tiga VM preemptible, tiga VM non-preemptible, atau gabungan pekerja spot dan non-preemptible.

Pekerja preemptible

  • Meskipun potensi penghapusan pekerja yang dapat dihentikan dapat memengaruhi stabilitas tugas, Anda dapat memutuskan untuk menggunakan instance yang dapat dihentikan untuk menurunkan biaya komputasi per jam untuk pemrosesan data non-kritis atau untuk membuat cluster yang sangat besar dengan total biaya yang lebih rendah (Anda dapat menggunakan kalkulator harga Google Cloud untuk memperkirakan biaya).

  • Untuk hasil terbaik, jumlah pekerja yang dapat di-preempt di cluster Anda harus kurang dari 50% dari jumlah total semua pekerja (primer ditambah semua pekerja sekunder) di cluster Anda.

  • Saat menggunakan pekerja preemptible, tugas Anda kemungkinan besar akan mengalami kegagalan tugas pekerja tunggal sementara yang lebih banyak dibandingkan dengan tugas yang berjalan di pekerja non-preemptible. Untuk meningkatkan toleransi tugas terhadap kegagalan tugas level rendah, Anda dapat menetapkan nilai properti cluster yang mirip dengan nilai properti default yang digunakan dengan cluster penskalaan otomatis untuk meningkatkan jumlah maksimum percobaan ulang tugas dan membantu menghindari kegagalan tugas.

  • Pertimbangan penghematan biaya: Menggunakan preemptible VM tidak selalu menghemat biaya karena penghentian dapat menyebabkan eksekusi tugas yang lebih lama sehingga menghasilkan biaya tugas yang lebih tinggi. Meskipun menggunakan Enhanced Flexibility Mode (EFM) dengan preemptible VM dapat membantu memitigasi hasil ini, penghematan biaya secara keseluruhan dari VM preemptible akan bervariasi dengan setiap kasus penggunaan. Umumnya, tugas berumur pendek lebih cocok untuk penggunaan preemptible VM, karena kemungkinan preemption selama eksekusi tugas akan lebih rendah. Coba berbagai opsi tugas, seperti tidak ada VM preemptible dan VM preemptible dengan EFM, untuk memperkirakan biaya dan mendapatkan solusi terbaik.

Pekerja non-preemptible

Memilih pekerja sekunder

Anda dapat menentukan jumlah dan jenis pekerja sekunder saat membuat cluster menggunakan konsol Google Cloud, gcloud CLI, atau Dataproc API.

  • Anda dapat menggabungkan spot dengan pekerja sekunder yang tidak dapat di-preempt.
  • Anda dapat memperbarui cluster setelah dibuat untuk mengubah jumlah, tetapi bukan jenis, pekerja sekunder di cluster Anda.
  • Update label di-propagasi ke semua pekerja sekunder preemptible dalam waktu 24 jam. Pembaruan label tidak diterapkan ke pekerja sekunder non-preemptible yang ada. Pembaruan label disebarkan ke semua pekerja yang ditambahkan ke cluster setelah pembaruan label. Misalnya, jika Anda menskalakan cluster, semua pekerja primer dan sekunder baru akan memiliki label baru.

Konsol

Anda dapat menentukan jumlah pekerja sekunder saat membuat cluster Dataproc dari konsol Google Cloud. Setelah cluster dibuat, Anda dapat menambahkan dan menghapus pekerja sekunder dengan mengedit konfigurasi cluster dari konsol Google Cloud.

Membuat cluster dengan pekerja sekunder

Anda dapat menetapkan jumlah dan jenis pekerja sekunder yang akan diterapkan ke cluster baru dari bagian Secondary worker nodes di panel Configure nodes di halaman Create a cluster Dataproc di konsol Google Cloud. Tentukan jumlah dan jenis pekerja sekunder di kolom Secondary worker nodes dan Preemptibility, masing-masing.

Mengupdate cluster dengan instance sekunder

Untuk memperbarui jumlah pekerja sekunder dalam cluster, klik nama cluster di halaman Clusters di konsol Google Cloud. Di halaman Cluster details. Klik tab **Configuration**, lalu klik Edit dan perbarui angka di kolom Secondary worker nodes.

Menghapus semua instance sekunder dari cluster

Untuk menghapus semua pekerja sekunder dari cluster, perbarui konfigurasi cluster seperti yang dijelaskan sebelumnya, dengan menentukan 0 di kolom Node pekerja sekunder.

Perintah Google Cloud CLI

Gunakan perintah gcloud dataproc clusters create untuk menambahkan pekerja sekunder ke cluster saat cluster dibuat. Setelah cluster dibuat, Anda dapat menambahkan atau menghapus pekerja sekunder ke atau dari cluster dengan perintah gcloud dataproc clusters update (jumlah, tetapi bukan jenis pekerja sekunder, dapat diperbarui).

Membuat cluster dengan pekerja sekunder

Untuk membuat cluster dengan pekerja sekunder, gunakan perintah gcloud dataproc clusters create dengan argumen --num-secondary-workers. Pekerja sekunder adalah preemptible VM standar secara default. Anda dapat menentukan pekerja sekunder non-preemptible atau spot saat membuat cluster dengan menetapkan flag --secondary-worker-type ke `non-preemptible` atau `spot`. Contoh berikut menunjukkan cara membuat cluster dengan setiap jenis pekerja sekunder: `preemptible` (default), spot (preemptible), dan non-preemptible. Anda dapat menggunakan flag tambahan untuk menggabungkan spot dengan pekerja sekunder yang tidak dapat di-preempt.

Contoh 1

Perintah berikut membuat "cluster1" dengan dua pekerja sekunder preemptible standar (jenis default).

gcloud dataproc clusters create cluster1 \
    --num-secondary-workers=2 \
    --region=us-central1
Contoh 2

Perintah berikut menggunakan flag secondary-worker-type untuk membuat "cluster2" dengan dua pekerja sekunder spot (dapat dihentikan).

gcloud dataproc clusters create cluster2 \
    --num-secondary-workers=2 \
    --secondary-worker-type=spot \
    --region=us-central1

Contoh 3

Perintah berikut menggunakan flag secondary-worker-type untuk membuat "cluster3" dengan dua pekerja sekunder yang tidak dapat di-preempt.

gcloud dataproc clusters create cluster3 \
    --num-secondary-workers=2 \
    --secondary-worker-type=non-preemptible \
    --region=us-central1
Ubah ukuran disk booting pekerja sekunder. Secara default, semua pekerja sekunder dibuat dengan ukuran disk booting pekerja primer atau 100 GB yang lebih kecil. Ruang disk ini digunakan untuk cache data lokal dan tidak tersedia melalui HDFS. Anda dapat mengganti ukuran disk default dengan perintah gcloud dataproc clusters create --secondary-worker-boot-disk-size saat pembuatan cluster. Flag ini dapat ditentukan meskipun cluster tidak memiliki pekerja sekunder pada waktu pembuatan. Biarkan konsol Google Cloud membuat permintaan pembuatan cluster Anda. Anda dapat mengklik link REST atau command line yang setara di bagian bawah panel kiri halaman Buat cluster Dataproc agar konsol Google Cloud membuat permintaan REST API atau perintah alat gcloud yang setara.

Mengupdate cluster dengan pekerja sekunder

Untuk memperbarui cluster guna menambahkan atau menghapus pekerja sekunder, gunakan perintah gcloud dataproc clusters update dengan flag --num-secondary-workers.

Contoh

Perintah berikut akan memperbarui example-cluster untuk menggunakan empat pekerja sekunder (dari jenis default atau jenis yang ditentukan saat Anda membuat cluster).

gcloud dataproc clusters update example-cluster \
    --num-secondary-workers=4 \
    --region=us-central1

Menghapus semua pekerja sekunder dari cluster

Untuk menghapus semua pekerja sekunder dari cluster, gunakan perintah gcloud dataproc clusters update dengan --num-secondary-workers ditetapkan ke 0.

Contoh

Perintah berikut menghapus semua pekerja sekunder dari "example-cluster".

gcloud dataproc clusters update example-cluster \
    --num-secondary-workers=0 \
    --region=us-central1

REST API

Membuat cluster dengan pekerja sekunder

Gunakan API clusters.create Dataproc untuk menambahkan pekerja sekunder ke cluster saat cluster dibuat. Contoh berikut menunjukkan cara membuat cluster dengan setiap jenis pekerja sekunder: preemptible (default), spot (dapat di-preempt), dan non-preemptible. Anda dapat menggunakan kolom tambahan untuk menggabungkan spot dengan pekerja sekunder yang tidak dapat di-preempt.

Contoh 1

Permintaan POST berikut membuat "cluster1" dengan dua pekerja VM preemptible standar (jenis default).


POST https://dataproc.googleapis.com/v1/projects/project-id/regions/region/clusters

{
  "clusterName": "cluster1",
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 2
    }
  }
}
Contoh 2

Permintaan POST berikut membuat "cluster2" dengan dua pekerja VM spot (preemptible).


POST https://dataproc.googleapis.com/v1/projects/project-id/regions/region/clusters

{
  "clusterName": "cluster2",
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 2,
      "preemptibility": "SPOT"
    }
  }
}

Contoh 3

Permintaan POST berikut membuat "cluster3" dengan dua pekerja sekunder yang tidak dapat di-preempt.


POST https://dataproc.googleapis.com/v1/projects/project-id/regions/region/clusters

{
  "clusterName": "cluster3",
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 2,
      "preemptibility": "NON_PREEMPTIBLE"
    }
  }
}

Mengupdate cluster dengan pekerja sekunder

Gunakan API clusters.patch Dataproc untuk menambahkan dan menghapus pekerja sekunder.

Contoh

Permintaan PATCH berikut akan memperbarui cluster agar memiliki empat pekerja sekunder (dari jenis default atau jenis yang ditentukan saat Anda membuat cluster).


PATCH /v1/projects/project-id/regions/region/clusters/cluster-name?updateMask=config.secondary_worker_config.num_instances
{
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 4
    }
  }
}
Biarkan konsol Google Cloud membuat permintaan pembuatan cluster Anda. Anda dapat mengklik link REST atau command line yang setara di bagian bawah panel kiri halaman Buat cluster Dataproc agar Konsol Google Cloud membuat permintaan REST API atau perintah gcloud CLI yang setara.

Memecahkan masalah pekerja sekunder

  • Masalah izin akun layanan: Pekerja sekunder dibuat melalui grup instance terkelola. Jika ada masalah izin, log Dataproc tidak akan melaporkan kegagalan untuk membuat pekerja sekunder, tetapi pekerja yang gagal akan tercantum di tab Instance VM pada halaman Detail cluster di konsol Google Cloud tanpa tanda centang hijau. Untuk melihat listingan, buka halaman Clusters Dataproc, lalu klik nama cluster untuk membuka halaman Cluster details untuk cluster tersebut.

  • Masalah izin grup instance terkelola: Untuk memeriksa apakah ada masalah dengan izin grup instance terkelola:

    1. Temukan nama grup instance terkelola (instanceGroupManagerName).

      Konsol

      1. Buka halaman Clusters Dataproc, lalu klik nama cluster untuk membuka halaman Cluster details untuk cluster tersebut.
      2. Klik REST yang Setara di bagian bawah halaman, lalu lihat nilai config.secondaryWorkerConfig.managedGroupConfig.instanceGroupManagerName.

      Google Cloud CLI

      Jalankan perintah gcloud dataproc clusters describe dengan flag --format untuk menampilkan instanceGroupManagerName.
      gcloud dataproc clusters describe CLUSTER_NAME \
          --region=REGION \
          --format='value(config.secondaryWorkerConfig.managedGroupConfig.instanceGroupManagerName)'
      

      REST API

      Kirim permintaan clusters.get untuk menampilkan nilai config.secondaryWorkerConfig.managedGroupConfig.instanceGroupManagerName.
    2. Lihat log di Logs Explorer.
    • Pilih jenis resource Google Compute Engine Instance Group, dan filter untuk nama grup instance terkelola.

    • Atau, Anda dapat menerapkan filter logging untuk `resource.type="gce_instance_group" dan resource.labels.instance_group_name=INSTANCE_GROUP_MANAGER_NAME.

Mencampurkan spot dengan pekerja sekunder yang tidak preemptible

Anda dapat menentukan campuran pekerja sekunder spot dan non-preemptible saat membuat cluster Dataproc.

Setelan pekerja sekunder untuk menggabungkan spot dengan pekerja sekunder yang tidak preemptible

Gunakan setelan pekerja sekunder berikut saat Anda membuat cluster Dataproc untuk mendapatkan tingkat minimum kapasitas pekerja sekunder dengan kemampuan untuk meningkatkan kapasitas saat VM spot tersedia:

  • secondary worker number: Jumlah total pekerja sekunder yang akan disediakan.

  • jenis pekerja sekunder: spot adalah jenis pekerja sekunder saat mencampur spot dengan pekerja sekunder yang tidak dapat di-preempt.

  • standardCapacityBase: Jumlah pekerja sekunder non-preemptible (standar) yang akan disediakan. Pekerja sekunder yang tidak dapat di-preempt disediakan sebelum jenis pekerja sekunder lainnya.

  • standardCapacityPercentAboveBase: Setelah jumlah pekerja sekunder standardCapacityBase diisi, jumlah pekerja sekunder yang tersisa yang diperlukan untuk memenuhi jumlah total pekerja sekunder yang diminta diisi dengan campuran VM non-preemptible dan spot sebagai berikut:

    • standardCapacityPercentAboveBase: Persentase pekerja sekunder yang tersisa untuk diisi dengan VMS yang tidak dapat di-preempt.
    • Jumlah yang tersisa yang diperlukan untuk memenuhi jumlah total pekerja sekunder yang diminta akan diisi dengan VM spot.

Contoh:

  • Jumlah pekerja sekunder: 15
  • standardCapacityBase: 5
  • standardCapacityPercentAboveBase 30%

Hasil:

  • Tidak dapat di-preempt: 8 = 5 (standardCapacityBase) + 3 (30% dari 10 yang tersisa)
  • Titik: 7 (70% dari 10 yang tersisa)
  • Total = 15

Membuat cluster dengan campuran pekerja sekunder spot dan non-preemptible

Anda dapat menggunakan gcloud CLI atau Dataproc API untuk menggabungkan pekerja sekunder spot dengan pekerja sekunder yang tidak dapat di-preempt saat membuat cluster.

gcloud

Jalankan perintah berikut secara lokal atau di Cloud Shell untuk membuat cluster dengan campuran pekerja sekunder spot dan non-preemptible.

gcloud dataproc clusters create CLUSTER_NAME \
    --project=PROJECT_ID \
    --region=REGION \
    --secondary-worker-type=spot \
    --num-secondary-workers=NUMBER_SECONDARY_WORKERS \
    --secondary-worker-standard-capacity-base=STANDARD_CAPACITY_BASE \
    --secondary-worker-standard-capacity-percent-above-base=STANDARD_CAPACITY_PERCENT_ABOVE_BASE \
    OTHER_FLAGS_AS_NEEDED

Catatan:

API

Untuk menggabungkan spot dengan pekerja sekunder yang tidak dapat di-preempt, tetapkan kolom API preemptibility, standardCapacityBase, dan standardCapacityPercentAboveBase Dataproc sebagai bagian dari permintaan cluster.create, seperti yang ditunjukkan dalam contoh JSON berikut:

{
  "clusterName": "CLUSTER_NAME",
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 15,
      "preemptibility": "spot",
      "instanceFlexibilityPolicy": {
        "provisioningModelMix": {
          "standardCapacityBase": STANDARD_CAPACITY_BASE
          "standardCapacityPercentAboveBase": STANDARD_CAPACITY_PERCENT_ABOVE_BASE
        }
      }
    }
  }
}

Catatan:

Menggabungkan pencampuran pekerja sekunder dengan VM fleksibel

Anda dapat mencampur pekerja sekunder spot dan non-preemptible serta menentukan bentuk VM fleksibel untuk pekerja sekunder saat membuat cluster.

Contoh gcloud CLI:

gcloud dataproc clusters create cluster-name \
    --project=project-id \
    --region=us-cdbtral1 \
    --secondary-worker-type=spot \
    --num-secondary-workers=15 \
    --secondary-worker-standard-capacity-base=5 \
    --secondary-worker-standard-capacity-percent-above-base=30 \
    --secondary-worker-machine-types="type=n2-standard-8,rank=0" \
    --secondary-worker-machine-types="type=e2-standard-8,type=t2d-standard-8,rank=1"
    ...other flags as needed

Karakteristik pencampuran pekerja sekunder

Bagian ini menjelaskan beberapa perilaku dan karakteristik yang terkait dengan titik pencampuran dan pekerja sekunder yang tidak dapat didahului.

Preferensi pekerja sekunder

Dataproc tidak memberikan preferensi ke VM spot atau non-preemptible saat menjadwalkan aplikasi di pekerja sekunder.

Penskalaan pekerja sekunder

Saat pekerja sekunder diskalakan melalui penskalaan otomatis atau penskalaan manual, Dataproc mempertahankan rasio spot-to-non-preemptible yang diminta saat menambahkan pekerja sekunder.

Memperbarui setelan campuran pekerja sekunder

Anda menentukan campuran pekerja sekunder spot dan non-preemptible saat membuat cluster Dataproc. Anda tidak dapat mengubah setelan campuran pekerja sekunder setelah membuat cluster.

Preemption pekerja sekunder Spot

  • Dataproc tidak mengontrol waktu preemption Spot VM (lihat Preemption Spot VM).
  • Saat preempti spot terjadi, grup pekerja sekunder dapat berjalan dengan kapasitas yang dikurangi untuk sementara hingga Compute Engine menyediakan ulang VM yang dipreempti.
  • Dataproc tidak akan menambahkan kapasitas ke grup pekerja sekunder yang melebihi setelan awal grup.