Selain menggunakan VM Compute Engine standar sebagai worker Managed Service untuk Apache Spark (disebut worker "primer"), cluster Managed Service untuk Apache Spark dapat menggunakan
secondary worker.
Karakteristik berikut berlaku untuk semua worker sekunder di cluster Managed Service untuk Apache Spark:
Hanya pemrosesan—Worker sekunder tidak menyimpan data. Worker sekunder hanya berfungsi sebagai node pemrosesan. Oleh karena itu, Anda dapat menggunakan worker sekunder untuk menskalakan komputasi tanpa menskalakan penyimpanan.
Tidak ada cluster khusus worker sekunder—Cluster Anda harus memiliki worker primer. Jika Anda membuat cluster dan tidak menentukan jumlah worker primer, Managed Service untuk Apache Spark akan menambahkan dua worker primer ke cluster.
Jenis mesin—Secara default, worker sekunder menggunakan jenis mesin worker primer cluster. Misalnya, jika Anda membuat cluster dengan worker primer yang menggunakan jenis mesin
n1-standard-4, secara default, semua worker sekunder yang ditambahkan ke cluster juga akan menggunakan mesinn1-standard-4.Daripada menggunakan jenis mesin worker primer default untuk worker sekunder, Anda dapat menentukan satu atau beberapa daftar jenis mesin yang diberi peringkat untuk worker sekunder. Lihat VM Fleksibel Managed Service untuk Apache Spark untuk mengetahui informasi selengkapnya.
Ukuran persistent disk—Secara default, worker sekunder dibuat dengan ukuran 1000 GB atau ukuran boot disk worker primer, mana saja yang lebih kecil. Ruang disk ini digunakan untuk caching data lokal dan tidak tersedia melalui HDFS. Anda dapat mengganti ukuran disk default dengan
gcloud dataproc clusters create --secondary-worker-boot-disk-sizeperintah saat pembuatan cluster. Anda dapat menentukan flag ini meskipun cluster tidak akan memiliki worker sekunder saat dibuat.Pembuatan Asinkron—Saat Anda menambahkan worker sekunder dengan membuat atau meningkatkan skala cluster, worker sekunder mungkin tidak disediakan pada saat operasi pembuatan atau pembaruan selesai. Hal ini karena Managed Service untuk Apache Spark mengelola worker sekunder menggunakan Managed Instance Group (MIG), yang membuat VM secara asinkron segera setelah dapat disediakan (lihat Memeriksa status instance terkelola).
Worker sekunder preemptible dan non-preemptible
Ada tiga jenis worker sekunder: VM spot, VM preemptible standar, dan VM non-preemptible. Jenis worker sekunder Managed Service untuk Apache Spark default adalah VM preemptible standar. Anda dapat menentukan campuran worker sekunder Spot dan non-preemptible.
VM spot menggunakan model harga preemptible VM yang lebih murah, tetapi tidak seperti VM preemptible dengan masa aktif maksimum 24 jam, VM spot tidak memiliki masa aktif maksimum. Worker VM preemptible standar dan spot akan diambil kembali dan dihapus dari cluster Managed Service untuk Apache Spark jika diperlukan untuk tugas lain. Google CloudPekerja preemptible
Meskipun potensi penghapusan worker preemptible dapat memengaruhi stabilitas tugas, Anda dapat memutuskan untuk menggunakan instance preemptible guna 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 mendapatkan hasil terbaik, jumlah worker preemptible di cluster Anda harus kurang dari 50% dari jumlah total semua worker (primer ditambah semua worker sekunder) di cluster Anda.
Saat menggunakan worker preemptible, tugas Anda kemungkinan besar akan mengalami lebih banyak kegagalan tugas worker tunggal sementara dibandingkan dengan tugas yang dijalankan pada worker non-preemptible. Untuk meningkatkan toleransi tugas terhadap kegagalan tugas tingkat 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: Penggunaan VM preemptible tidak selalu menghemat biaya karena preemption 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 VM preemptible akan bervariasi dengan setiap kasus penggunaan. Umumnya, tugas yang berumur pendek lebih cocok untuk penggunaan preemptible VM, karena probabilitas preemption selama eksekusi tugas akan lebih rendah. Coba opsi tugas yang berbeda, seperti tanpa VM preemptible dan VM preemptible dengan EFM, untuk memperkirakan biaya dan mendapatkan solusi terbaik.
Pekerja non-preemptible
- Anda dapat membuat cluster dengan worker sekunder non-preemptible untuk menskalakan komputasi tanpa mengorbankan stabilitas tugas. Untuk melakukannya, tentukan
non-preemptiblesebagai jenis worker sekunder. Anda dapat menggabungkan worker sekunder non-preemptible dengan spot.
Memilih worker sekunder
Anda dapat menentukan jumlah dan jenis worker sekunder saat membuat cluster menggunakan Google Cloud konsol, gcloud CLI atau Managed Service untuk Apache Spark API.
- Anda dapat menggabungkan worker sekunder spot dengan non-preemptible.
- Anda dapat memperbarui cluster setelah dibuat untuk mengubah jumlah, tetapi bukan jenis, worker sekunder di cluster Anda.
- Update label akan disebarkan ke semua worker sekunder preemptible dalam waktu 24 jam. Update label tidak akan disebarkan ke worker sekunder non-preemptible yang sudah ada. Update label akan disebarkan ke semua worker yang ditambahkan ke cluster setelah update label. Misalnya, jika Anda meningkatkan skala cluster, semua worker primer dan worker baru akan memiliki label baru.
Konsol
Anda dapat menentukan jumlah worker sekunder saat membuat cluster Managed Service untuk Apache Spark dari Google Cloud konsol. Setelah cluster dibuat, Anda dapat menambahkan dan menghapus worker sekunder dengan mengedit konfigurasi cluster dari Google Cloud konsol.
Membuat cluster dengan worker sekunder
Anda dapat menetapkan jumlah dan jenis worker sekunder yang akan diterapkan ke cluster baru dari bagian Secondary worker nodes di panel Configure nodes pada halaman Managed Service untuk Apache Spark Create a cluster di Google Cloud konsol. Tentukan jumlah dan jenis worker sekunder di kolom Secondary worker nodes dan Preemptibility, masing-masing.
Memperbarui cluster dengan instance sekunder
Untuk memperbarui jumlah worker sekunder dalam cluster, klik nama cluster di halaman **Clusters** di Google Cloud konsol. Di halaman Cluster details. Klik tab **Configuration** , lalu klik Edit dan perbarui jumlah di kolom Secondary worker nodes.
Menghapus semua instance sekunder dari cluster
Untuk menghapus semua worker sekunder dari cluster, perbarui konfigurasi cluster seperti yang dijelaskan sebelumnya, dengan menentukan 0 di kolom Secondary worker nodes.
Perintah Google Cloud CLI
Gunakan
gcloud dataproc clusters create
perintah untuk menambahkan worker sekunder ke cluster saat cluster dibuat.
Setelah cluster dibuat, Anda dapat menambahkan atau menghapus worker sekunder ke atau dari
cluster dengan
gcloud dataproc clusters update
perintah (jumlah, tetapi bukan jenis, worker sekunder dapat diperbarui).
Membuat cluster dengan worker sekunder
Untuk membuat cluster dengan worker sekunder, gunakan perintah
gcloud dataproc clusters create
dengan argumen --num-secondary-workers. Worker sekunder adalah VM preemptible standar secara default. Anda dapat menentukan worker sekunder non-preemptible atau
spot saat membuat cluster
dengan menetapkan --secondary-worker-type flag ke `non-preemptible`
atau `spot`. Contoh berikut menunjukkan cara membuat cluster dengan setiap
jenis worker sekunder: `preemptible` (default), spot (preemptible),
dan non-preemptible. Anda dapat menggunakan flag tambahan untuk
menggabungkan worker sekunder spot dengan non-preemptible.
Perintah berikut membuat "cluster1" dengan dua worker 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 worker sekunder spot (preemptible).
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 worker sekunder non-preemptible.
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 worker sekunder pada waktu pembuatan.
Izinkan konsol membuat permintaan pembuatan cluster Anda. Google Cloud
Anda dapat mengklik link Equivalent REST or command line di bagian bawah panel kiri halaman Managed Service untuk Apache Spark
Create a cluster agar konsol membuat perintah alat gcloud atau permintaan REST API yang setara. Google Cloud
Memperbarui cluster dengan worker sekunder
Untuk memperbarui cluster guna menambahkan atau menghapus worker sekunder, gunakan perintah
gcloud dataproc clusters update
dengan flag --num-secondary-workers.
Perintah berikut memperbarui 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 worker sekunder dari cluster
Untuk menghapus semua worker sekunder dari cluster, gunakan perintah
gcloud dataproc clusters update
dengan --num-secondary-workers ditetapkan ke 0.
Perintah berikut menghapus semua worker sekunder dari "example-cluster".
gcloud dataproc clusters update example-cluster \ --num-secondary-workers=0 \ --region=us-central1
REST API
Membuat cluster dengan worker sekunder
Gunakan Managed Service untuk Apache Spark
clusters.create
API untuk menambahkan worker sekunder ke cluster saat cluster dibuat. Contoh berikut
menunjukkan cara membuat cluster dengan setiap
jenis worker sekunder:
preemptible (default), spot (preemptible),
dan non-preemptible. Anda dapat menggunakan kolom tambahan untuk
menggabungkan worker sekunder spot dengan non-preemptible.
Permintaan POST berikut membuat "cluster1" dengan dua worker 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 worker 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 non-preemptible worker 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 Managed Service untuk Apache Spark clusters.patch API untuk menambahkan dan menghapus worker 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 worker sekunder
Masalah izin akun layanan: Worker sekunder dibuat melalui grup instance terkelola. Jika ada masalah izin, Managed Service untuk Apache Spark log tidak akan melaporkan kegagalan pembuatan worker sekunder, tetapi worker yang gagal akan tercantum di tab VM Instances pada halaman Cluster details di Google Cloud konsol tanpa tanda centang hijau. Untuk melihat daftar, buka halaman Managed Service untuk Apache Spark Clusters, lalu klik nama cluster untuk membuka halaman Cluster details untuk cluster.
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 Managed Service untuk Apache Spark, lalu klik nama cluster untuk membuka halaman Cluster details untuk cluster.
- Klik Equivalent REST di bagian bawah halaman, lalu lihat nilai
config.secondaryWorkerConfig.managedGroupConfig.instanceGroupManagerName.
Google Cloud CLI
Jalankan perintahgcloud dataproc clusters describedengan flag--formatuntuk menampilkaninstanceGroupManagerName.gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION \ --format='value(config.secondaryWorkerConfig.managedGroupConfig.instanceGroupManagerName)'
REST API
Kirimclusters.getpermintaan untuk menampilkan nilaiconfig.secondaryWorkerConfig.managedGroupConfig.instanceGroupManagerName. - 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" and
resource.labels.instance_group_name=INSTANCE_GROUP_MANAGER_NAME.
- Temukan nama grup instance terkelola (
Menggabungkan worker sekunder spot dengan non-preemptible
Anda dapat menentukan campuran worker sekunder spot dan non-preemptible saat membuat cluster Managed Service untuk Apache Spark.
Setelan worker sekunder untuk menggabungkan worker sekunder spot dengan non-preemptible
Gunakan setelan worker sekunder berikut saat Anda membuat cluster Managed Service untuk Apache Spark guna mendapatkan tingkat kapasitas worker sekunder minimum dengan kemampuan untuk meningkatkan kapasitas saat VM spot tersedia:
secondary worker number: Jumlah total worker sekunder yang akan disediakan.
secondary worker type:
spotadalah jenis worker sekunder saat menggabungkan worker sekunder spot dengan non-preemptible.standardCapacityBase: Jumlah worker sekunder non-preemptible (standar) yang akan disediakan. Worker sekunder non-preemptible disediakan sebelum jenis worker sekunder lainnya.
standardCapacityPercentAboveBase: Setelah jumlah worker sekunder
standardCapacityBasediisi, jumlah worker sekunder yang tersisa yang diperlukan untuk memenuhi jumlah total worker sekunder yang diminta akan diisi dengan campuran VM non-preemptible dan spot sebagai berikut:standardCapacityPercentAboveBase: Persen worker sekunder yang tersisa untuk diisi dengan VM non-preemptible.- Jumlah yang tersisa yang diperlukan untuk memenuhi jumlah total worker sekunder yang diminta akan diisi dengan VM spot.
Contoh:
- Jumlah worker sekunder: 15
standardCapacityBase: 5standardCapacityPercentAboveBase30%
Hasil:
- Non-preemptible: 8 = 5 (
standardCapacityBase) + 3 (30% dari 10 yang tersisa) - Spot: 7 (70% dari 10 yang tersisa)
- Total = 15
Membuat cluster dengan campuran worker sekunder spot dan non-preemptible
Anda dapat menggunakan gcloud CLI atau Managed Service untuk Apache Spark API untuk menggabungkan worker sekunder spot dengan non-preemptible saat membuat cluster.
gcloud
Jalankan perintah berikut secara lokal atau di Cloud Shell untuk membuat cluster dengan campuran worker 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: Project ID Anda Google Cloud . Project ID tercantum di bagian Project info di Dasbor Google Cloud konsol.
- REGION: Region Compute Engine yang tersedia untuk menjalankan workload.
--secondary-worker-type: Saat menggabungkan worker sekunder spot dan non-preemptible, tentukan jenis worker sekunder sebagaispot.- STANDARD_CAPACITY_BASE dan STANDARD_CAPACITY_PERCENT_ABOVE_BASE: Lihat Setelan worker sekunder untuk menggabungkan worker sekunder spot dengan non-preemptible.
- OTHER_FLAGS_AS_NEEDED: Lihat gcloud dataproc clusters create.
API
Untuk menggabungkan worker sekunder spot dengan non-preemptible, tetapkan kolom API
Managed Service untuk Apache Spark preemptibility, standardCapacityBase, dan
standardCapacityPercentAboveBase 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 worker sekunder spot dan non-preemptible, tentukanspot.- STANDARD_CAPACITY_BASE dan STANDARD_CAPACITY_PERCENT_ABOVE_BASE: Lihat Setelan worker sekunder untuk menggabungkan worker sekunder spot dengan non-preemptible.
Menggabungkan campuran worker sekunder dengan VM fleksibel
Anda dapat menggabungkan worker sekunder spot dan non-preemptible serta menentukan bentuk VM fleksibel untuk worker sekunder saat 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 campuran worker sekunder
Bagian ini menjelaskan beberapa perilaku dan karakteristik yang terkait dengan penggabungan worker sekunder spot dan non-preemptible.
Preferensi worker sekunder
Managed Service untuk Apache Spark tidak memberikan preferensi ke VM spot atau non-preemptible saat menjadwalkan aplikasi di worker sekunder.
Penskalaan worker sekunder
Saat worker sekunder diskalakan melalui pensakalaan otomatis atau penskalaan manual, Managed Service untuk Apache Spark mempertahankan rasio spot-ke-non-preemptible yang diminta saat menambahkan worker sekunder.
Memperbarui setelan campuran worker sekunder
Anda menentukan campuran worker sekunder spot dan non-preemptible saat Anda membuat cluster Managed Service untuk Apache Spark. Anda tidak dapat mengubah setelan campuran worker sekunder setelah membuat cluster.
Preemption worker sekunder spot
- Managed Service untuk Apache Spark tidak mengontrol waktu preemption VM spot (lihat Preemption VM Spot).
- Saat preemption spot terjadi, grup worker sekunder dapat berjalan dengan kapasitas yang dikurangi untuk sementara hingga Compute Engine menyediakan kembali VM yang di-preempt.
- Managed Service untuk Apache Spark tidak akan menambahkan kapasitas ke grup worker sekunder yang melebihi setelan awal grup.