Dokumen ini menjelaskan cara membuat cluster Managed Service untuk Apache Spark dalam mode High Obtainability (HO). Mode High Obtainability meningkatkan kemungkinan keberhasilan penyediaan VM cluster selama periode permintaan tinggi atau batasan resource dengan memungkinkan Managed Service untuk Apache Spark memilih dari berbagai jenis mesin yang kompatibel, alih-alih memerlukan jenis mesin tetap saat membuat cluster.
Gunakan mode High Obtainability untuk membuat cluster dengan persyaratan komputasi tujuan umum guna membantu mencegah kegagalan pembuatan dan penskalaan cluster karena VM tidak tersedia.
Cara kerja mode Kemungkinan Tinggi
Dalam permintaan pembuatan cluster standar, Anda menentukan jenis mesin tertentu (seperti n2-standard-4) untuk node cluster. Jika jenis mesin tertentu tersebut tidak tersedia di suatu zona, permintaan pembuatan akan gagal.
Dalam mode High Obtainability, Anda menentukan persyaratan resource yang fleksibel untuk node master, worker utama, dan worker sekunder, bukan jenis mesin tetap:
- Jumlah core vCPU: Anda meminta jumlah target vCPU per instance VM (2, 4, 8, 16, atau 32 core).
Class hardware: Anda menentukan profil performa dan memori:
STANDARD: Menyediakan konfigurasi yang seimbang dengan memori sekitar 4 GB per vCPU dan tingkat penyimpanan persisten standar. Jenis mesin kandidat saat ini mencakupn4-standard,n4d-standard,n2-standard, dann2d-standard(preferensi Peringkat 0), sertac4-standarddanc4d-standard(preferensi Peringkat 1).PERFORMANCE: Menyediakan konfigurasi berperforma tinggi dengan memori sekitar 8 GB per vCPU dan konfigurasi disk tingkat lebih tinggi (IOPS dan throughput yang lebih tinggi). Jenis mesin kandidat saat ini mencakupn4-highmem,n4d-highmem,n2-highmem, dann2d-highmem(preferensi Peringkat 0), sertac4-highmemdanc4d-highmem(preferensi Peringkat 1).
Jumlah instance: Anda menentukan jumlah instance untuk setiap grup:
- Master: harus berupa 1 instance.
- Primary worker: bilangan bulat positif.
- Pekerja sekunder: bilangan bulat non-negatif.
Boot disk size: Ukuran boot disk opsional (misalnya, 100 GB).
Managed Service untuk Apache Spark otomatis menggunakan Penempatan Zona Otomatis untuk mengevaluasi zona di seluruh region cluster dan memilih jenis mesin kandidat dalam class hardware yang diminta yang memiliki kapasitas yang tersedia.
Persyaratan dan batasan
Mode High Obtainability memiliki persyaratan dan batasan berikut:
- Kuota resource: Project Anda harus memiliki kuota resource Compute Engine yang memadai di region cluster untuk semua kelompok mesin kandidat di class hardware yang Anda pilih (
N4,N4D,N2,N2D,C4, danC4D). Karena jenis mesin kandidat yang mendasarinya dikontrol oleh Google dan dapat berubah sewaktu-waktu, jangan bergantung pada jenis mesin tertentu. - Spesifikasi zona: Anda tidak dapat menentukan
--zone(atauzoneUri) secara eksplisit. Managed Service untuk Apache Spark otomatis memilih zona yang tersedia di region menggunakan penempatan Zona Otomatis. - Saling eksklusif dengan konfigurasi mesin dan node tetap:
- Saat mengonfigurasi grup node master, primary worker, atau secondary worker
dengan konfigurasi fleksibel (
--master-flexible-config,--worker-flexible-config, atau--secondary-worker-flexible-config), Anda tidak dapat menentukan jenis mesin standar, pemilihan instance, jumlah instance, disk, atau flag akselerator untuk grup node tersebut:- Master: Tidak dapat digabungkan dengan
--master-machine-type,--master-machine-types,--master-instance-selection,--master-instance-flexibility-policy-file,--master-boot-disk-size,--master-boot-disk-type,--num-master-local-ssds,--master-accelerator, atau--master-min-cpu-platform. - Primary worker: Tidak dapat digabungkan dengan
--num-workers,--worker-machine-type,--worker-machine-types,--worker-instance-selection,--worker-instance-flexibility-policy-file,--worker-boot-disk-size,--worker-boot-disk-type,--num-worker-local-ssds,--worker-accelerator, atau--worker-min-cpu-platform. - Worker sekunder: Tidak dapat digabungkan dengan
--num-secondary-workers,--secondary-worker-type,--secondary-worker-machine-types,--secondary-worker-instance-selection,--secondary-worker-instance-flexibility-policy-file,--secondary-worker-boot-disk-size,--secondary-worker-boot-disk-type,--num-secondary-worker-local-ssds, atau--secondary-worker-accelerator.
- Master: Tidak dapat digabungkan dengan
- Dalam cluster multi-node, jika mode High Obtainability diaktifkan untuk grup node master, grup worker node utama juga harus menggunakan konfigurasi fleksibel (
--worker-flexible-config). - Jika worker sekunder digunakan dalam cluster High Obtainability, worker tersebut harus menggunakan
--secondary-worker-flexible-config, bukan flag worker sekunder standar.
- Saat mengonfigurasi grup node master, primary worker, atau secondary worker
dengan konfigurasi fleksibel (
- Cluster node tunggal: Dalam
cluster node tunggal
(
--single-nodeatau--cluster-type=single-node), hanya--master-flexible-configyang dapat ditentukan. Flag konfigurasi fleksibel worker primer dan sekunder tidak didukung. - Update cluster: Anda dapat mengupdate jumlah instance
(
num-instances) untuk worker primer dan sekunder menggunakangcloud dataproc clusters update. Jumlah core, class hardware, dan ukuran boot disk adalah spesifikasi waktu pembuatan dan tidak dapat diubah setelah pembuatan. - Cluster ketersediaan tinggi: Cluster ketersediaan tinggi (HA) (cluster dengan tiga node master) tidak didukung dalam mode High Obtainability. Jumlah instance master harus 1.
Membuat cluster dengan Ketersediaan Tinggi
Anda dapat membuat cluster dalam mode High Obtainability menggunakan Google Cloud CLI atau Dataproc API.
gcloud
Untuk membuat cluster dalam mode High Obtainability, jalankan perintah
gcloud dataproc clusters create
dengan flag --master-flexible-config dan --worker-flexible-config.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=1,boot-disk-size=BOOT_DISK_SIZE" \
--worker-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=NUM_WORKERS,boot-disk-size=BOOT_DISK_SIZE"
Ganti kode berikut:
CLUSTER_NAME: nama cluster.REGION: region Compute Engine untuk cluster, sepertius-central1. Jangan tentukan--zone.CORES: jumlah vCPU per instance VM. Harus berupa pangkat 2 (2,4,8,16, atau32).HARDWARE_CLASS: class profil hardware,STANDARDatauPERFORMANCE.NUM_WORKERS: jumlah worker node utama dalam cluster.BOOT_DISK_SIZE: ukuran boot disk, seperti100GB.
Menambahkan worker sekunder
Untuk menambahkan node worker sekunder dalam mode High Obtainability, sertakan flag --secondary-worker-flexible-config:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=4,hardware-class=STANDARD,num-instances=1,boot-disk-size=100GB" \
--worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB" \
--secondary-worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB"
Membuat cluster node tunggal
Untuk membuat cluster High Obtainability node tunggal, tentukan --single-node (atau --cluster-type=single-node) dengan --master-flexible-config dan hapus flag konfigurasi fleksibel worker:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--single-node \
--master-flexible-config="cores=4,hardware-class=STANDARD,boot-disk-size=100GB"
Memperbarui kapasitas worker cluster
Untuk menskalakan jumlah worker primer atau sekunder di cluster High Obtainability yang ada, gunakan perintah gcloud dataproc clusters update:
gcloud dataproc clusters update CLUSTER_NAME \
--region=REGION \
--worker-flexible-config="num-instances=NEW_NUM_WORKERS"
REST
Untuk membuat cluster High Obtainability menggunakan REST API, kirim permintaan
clusters.create. Dalam objek
ClusterConfig:
- Biarkan
gceClusterConfig.zoneUrikosong (atau hapus) untuk mengaktifkan penempatan Zona Otomatis. - Tentukan objek
masterFlexibleConfigdanworkerFlexibleConfig.
Metode HTTP dan URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters
Meminta isi JSON:
{
"projectId": "PROJECT_ID",
"clusterName": "CLUSTER_NAME",
"config": {
"gceClusterConfig": {
"zoneUri": ""
},
"masterFlexibleConfig": {
"numInstances": 1,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
},
"workerFlexibleConfig": {
"numInstances": 2,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
}
}
}
Ganti kode berikut:
PROJECT_ID: Project ID Google Cloud Anda.REGION: region Compute Engine tempat cluster akan dibuat, sepertius-central1.CLUSTER_NAME: nama cluster.
Opsional: Untuk menambahkan worker sekunder, sertakan objek secondaryWorkerFlexibleConfig dengan numInstances, coreCount, hardwareClass, dan bootDiskSizeGb yang diinginkan.
Langkah berikutnya
- Pelajari lebih lanjut Penempatan Zona Otomatis.
- Pelajari cara Memprioritaskan jenis VM dengan VM fleksibel.
- Pelajari cara menskalakan cluster Managed Service untuk Apache Spark.