Selain menggunakan VM Compute Engine standar sebagai pekerja Dataproc (disebut pekerja "primer"), cluster Dataproc dapat menggunakan pekerja secondary
.
Karakteristik berikut berlaku untuk semua pekerja sekunder dalam cluster Dataproc:
Hanya pemrosesan—Worker sekunder tidak menyimpan data. Node ini hanya berfungsi sebagai node pemrosesan. Oleh karena itu, Anda dapat menggunakan worker 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 mesinn1-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 VM Fleksibel Dataproc untuk mengetahui informasi selengkapnya.
Ukuran persistent disk—Secara default, worker sekunder dibuat dengan ukuran yang lebih kecil, yaitu 1000 GB atau ukuran boot disk worker utama. 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 pembuatan 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 menskalakan cluster, pekerja sekunder mungkin belum disediakan saat operasi pembuatan atau update selesai. Hal ini karena Dataproc mengelola pekerja sekunder menggunakan Managed Instance Groups (MIG), yang membuat VM secara asinkron segera setelah VM dapat disediakan (lihat Memeriksa status instance terkelola).
Pekerja sekunder preemptible dan non-preemptible
Ada tiga jenis pekerja sekunder: Spot VM, preemptible VM standar, dan non-preemptible VM. Jenis pekerja sekunder Dataproc default adalah VM preemptible standar. Anda dapat menentukan campuran worker sekunder Spot dan non-preemptible.
Contoh: Jika Anda memilih tiga pekerja sekunder saat membuat cluster, Anda dapat menentukan tiga VM spot, tiga VM preemptible, tiga VM non-preemptible, atau kombinasi 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 lebih banyak kegagalan tugas pekerja tunggal yang bersifat sementara dibandingkan dengan tugas yang dijalankan pada pekerja non-preemptible. Untuk meningkatkan toleransi tugas tingkat rendah terhadap kegagalan, 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: Penggunaan preemptible VM tidak selalu menghemat biaya karena penghentian dapat menyebabkan eksekusi tugas yang lebih lama dengan biaya tugas yang lebih tinggi. Meskipun penggunaan Mode Fleksibilitas yang Ditingkatkan (EFM) dengan VM preemptible dapat membantu mengurangi hasil ini, penghematan biaya keseluruhan dari VM preemptible akan bervariasi untuk setiap kasus penggunaan. Umumnya, tugas berdurasi singkat lebih cocok untuk penggunaan preemptible VM, karena probabilitas preempti selama eksekusi tugas akan lebih rendah. Coba opsi tugas yang berbeda, seperti tanpa VM yang dapat di-preempt dan VM yang dapat di-preempt dengan EFM, untuk memperkirakan biaya dan mendapatkan solusi terbaik.
Pekerja non-preemptible
- Anda dapat membuat cluster dengan pekerja sekunder yang tidak dapat di-preempt untuk menskalakan komputasi tanpa mengorbankan stabilitas tugas. Untuk melakukannya, tentukan
non-preemptible
sebagai jenis pekerja sekunder. Anda dapat mencampur pekerja sekunder non-preemptible dengan spot.
Pilih pekerja sekunder
Anda dapat menentukan jumlah dan jenis pekerja sekunder saat membuat cluster menggunakan konsolGoogle Cloud , gcloud CLI atau Dataproc API.
- Anda dapat mencampur spot dengan pekerja sekunder yang tidak dapat di-preempt.
- Anda dapat memperbarui cluster setelah dibuat untuk mengubah jumlah, tetapi bukan jenis, worker sekunder di cluster Anda.
- Pembaruan label dipropagasi ke semua pekerja sekunder preemptible dalam waktu 24 jam. Pembaruan label tidak diterapkan ke pekerja sekunder non-preemptible yang ada. Pembaruan label diterapkan 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 Google Cloud konsol.
Membuat cluster dengan pekerja sekunder
Anda dapat menetapkan jumlah dan jenis pekerja sekunder yang akan diterapkan ke cluster baru dari bagian Node pekerja sekunder di panel Konfigurasi node pada halaman Buat cluster 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 worker 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
secara default adalah VM preemptible standar. Anda dapat menentukan pekerja sekunder non-preemptible atau spot saat membuat cluster dengan menyetel 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 tanda tambahan untuk
mencampur spot dengan pekerja sekunder yang tidak dapat di-preempt.
Perintah berikut membuat "cluster1" dengan dua pekerja sekunder preemptible standar (jenis default).
gcloud dataproc clusters create cluster1 \ --num-secondary-workers=2 \ --region=us-central1
Perintah berikut menggunakan flag secondary-worker-type
untuk membuat "cluster2" dengan dua pekerja sekunder spot (dapat di-preempt).
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
non-preemptible pekerja sekunder.
gcloud dataproc clusters create cluster3 \ --num-secondary-workers=2 \ --secondary-worker-type=non-preemptible \ --region=us-central1
gcloud dataproc clusters create --secondary-worker-boot-disk-size
saat pembuatan cluster. Flag ini dapat ditentukan meskipun cluster tidak memiliki pekerja sekunder saat 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 untuk membuat konsol Google Cloud membuat permintaan REST API atau perintah alat gcloud yang setara.
Memperbarui cluster dengan worker sekunder
Untuk memperbarui cluster guna menambahkan atau menghapus pekerja sekunder, gunakan perintah
gcloud dataproc clusters update
dengan flag --num-secondary-workers
.
Perintah berikut mengupdate example-cluster untuk menggunakan empat worker 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
.
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 Dataproc
clusters.create
API 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
mencampur spot dengan pekerja sekunder non-preemptible.
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 } } }
Permintaan POST berikut membuat "cluster2" dengan dua pekerja VM spot (dapat di-preempt).
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 non-preemptible pekerja sekunder.
POST https://dataproc.googleapis.com/v1/projects/project-id/regions/region/clusters { "clusterName": "cluster3", "config": { "secondaryWorkerConfig": { "numInstances": 2, "preemptibility": "NON_PREEMPTIBLE" } } }
Memperbarui cluster dengan worker sekunder
Gunakan Dataproc clusters.patch API untuk menambahkan dan menghapus pekerja sekunder.
ContohPermintaan PATCH berikut memperbarui cluster agar memiliki empat worker 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 } } }
Memecahkan masalah pekerja sekunder
Masalah izin akun layanan: Worker sekunder dibuat melalui grup instance terkelola. Jika ada masalah izin, log Dataproc tidak akan melaporkan kegagalan pembuatan pekerja sekunder, tetapi pekerja yang gagal akan tercantum di tab VM Instances pada halaman Cluster details di konsolGoogle Cloud tanpa tanda centang hijau. Untuk melihat listingan, buka halaman Dataproc Clusters, 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:
- Temukan nama grup instance terkelola (
instanceGroupManagerName
).Konsol
- Buka halaman Clusters Dataproc, lalu klik nama cluster untuk membuka halaman Cluster details untuk cluster tersebut.
- Klik REST yang setara di bagian bawah halaman, lalu lihat nilai
config.secondaryWorkerConfig.managedGroupConfig.instanceGroupManagerName
.
Google Cloud CLI
Jalankan perintahgcloud dataproc clusters describe
dengan flag--format
untuk menampilkaninstanceGroupManagerName
.gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION \ --format='value(config.secondaryWorkerConfig.managedGroupConfig.instanceGroupManagerName)'
REST API
Kirim permintaanclusters.get
untuk menampilkan nilaiconfig.secondaryWorkerConfig.managedGroupConfig.instanceGroupManagerName
. - Lihat log di Logs Explorer.
Pilih jenis resource
Google Compute Engine Instance Group
, lalu filter nama grup instance terkelola.Atau, Anda dapat menerapkan filter logging untuk `resource.type="gce_instance_group" and
resource.labels.instance_group_name=INSTANCE_GROUP_MANAGER_NAME
.
- Temukan nama grup instance terkelola (
Campurkan spot dengan pekerja sekunder yang tidak dapat di-preempt
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 dapat di-preempt
Gunakan setelan pekerja sekunder berikut saat Anda membuat kluster Dataproc untuk mendapatkan kapasitas pekerja sekunder minimum 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 menggabungkan pekerja sekunder spot dengan pekerja sekunder yang tidak dapat di-preempt.standardCapacityBase: Jumlah pekerja sekunder (standar) yang tidak dapat di-preempt untuk 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
: Persen pekerja sekunder yang tersisa untuk diisi dengan VM yang tidak dapat di-preempt.- Jumlah yang tersisa untuk memenuhi jumlah total pekerja sekunder yang diminta diisi dengan VM spot.
Contoh:
- Jumlah pekerja sekunder: 15
standardCapacityBase
: 5standardCapacityPercentAboveBase
30%
Hasil:
- Tidak dapat dihentikan: 8 = 5 (
standardCapacityBase
) + 3 (30% dari 10 yang tersisa) - Spot: 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 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:
- CLUSTER_NAME: Nama cluster baru.
- PROJECT_ID: ID project Google Cloud Anda. Project ID tercantum di bagian Project info di Google Cloud Dasbor konsol.
- REGION: Region Compute Engine yang tersedia untuk menjalankan beban kerja.
--secondary-worker-type
: Saat menggabungkan pekerja sekunder spot dan non-preemptible, tentukan jenis pekerja sekunder sebagaispot
.- STANDARD_CAPACITY_BASE dan STANDARD_CAPACITY_PERCENT_ABOVE_BASE: Lihat Setelan pekerja sekunder untuk menggabungkan pekerja sekunder spot dengan pekerja sekunder non-preemptible.
- OTHER_FLAGS_AS_NEEDED: Lihat gcloud dataproc clusters create.
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:
- CLUSTER_NAME: Nama cluster baru.
preemptibility
: Saat menggabungkan pekerja sekunder non-preemptible dan spot, tentukanspot
.- STANDARD_CAPACITY_BASE dan STANDARD_CAPACITY_PERCENT_ABOVE_BASE: Lihat Setelan pekerja sekunder untuk menggabungkan pekerja sekunder spot dengan pekerja sekunder non-preemptible.
Menggabungkan pencampuran pekerja sekunder dengan VM fleksibel
Anda dapat mencampur pekerja sekunder spot dan non-preemptible dan menentukan bentuk VM yang fleksibel untuk pekerja sekunder saat Anda membuat cluster.
Contoh gcloud CLI:
gcloud dataproc clusters create cluster-name \ --project=project-id \ --region=us-central1 \ --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 mencampur pekerja sekunder non-dapat didahului dan spot.
Preferensi pekerja sekunder
Dataproc tidak memberikan preferensi untuk 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-ke-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 VM spot (lihat Preemption Spot VM).
- Saat preempti spot terjadi, grup pekerja sekunder dapat berjalan dengan kapasitas yang berkurang untuk sementara hingga Compute Engine menyediakan ulang VM yang di-preempti.
- Dataproc tidak akan menambahkan kapasitas ke grup pekerja sekunder yang melebihi setelan awal grup.