Dokumen ini menjelaskan cara membuat cluster multi-zona Managed Service untuk Apache Spark. Dalam cluster multi-zona, Managed Service for Apache Spark menyediakan dan mendistribusikan instance VM Compute Engine cluster di beberapa zona dalam satu region, alih-alih menempatkan semua node cluster di satu zona.
Gunakan cluster multi-zona saat Anda perlu membuat atau menskalakan cluster besar dan kapasitas satu zona mungkin tidak cukup untuk memenuhi permintaan Anda.
Cara kerja cluster multi-zona
Saat Anda membuat cluster multi-zona, Managed Service untuk Apache Spark akan menyediakan node cluster sebagai berikut:
- Node master: Managed Service untuk Apache Spark menempatkan grup instance master di satu zona dalam region cluster menggunakan penempatan Zona Otomatis.
- Worker node: Managed Service for Apache Spark mengonfigurasi grup worker utama dan worker sekunder sebagai grup instance terkelola (MIG) regional. Grup ini menyediakan dan mendistribusikan worker VM di seluruh zona yang memenuhi syarat di region yang memiliki kapasitas yang tersedia.
Karena Managed Service untuk Apache Spark mendistribusikan permintaan worker VM di beberapa zona, batasan kapasitas di satu zona cenderung tidak akan memblokir permintaan Anda. Hal ini membantu mencegah error ZONE_RESOURCE_POOL_EXHAUSTED saat Anda membuat atau menskalakan cluster besar, cluster dengan Spot VM atau worker sekunder preemptible, atau cluster yang menggunakan jenis mesin dengan permintaan tinggi.
Persyaratan dan batasan
Untuk membuat cluster multi-zona, Anda harus menggunakan salah satu versi image berikut atau versi yang lebih baru di jalur versi image yang sama:
| Jalur versi image | Versi image minimum yang didukung |
|---|---|
| 2.2.x | 2.2.88 |
| 2.3.x | 2.3.37 |
| 3.0.x | 3.0.3 |
Cluster multi-zona memiliki batasan berikut:
- Anda tidak dapat menentukan konfigurasi zona tunggal dan multi-zona dalam permintaan pembuatan cluster yang sama.
- Anda tidak dapat membuat cluster multi-zona dengan lebih dari 1.000 worker utama dalam permintaan pembuatan cluster awal. Jika workload Anda memerlukan lebih dari 1.000 worker utama, buat cluster dengan 1.000 worker utama atau kurang, lalu skalakan cluster setelah dibuat.
Biaya transfer data jaringan
Dalam cluster zona tunggal, semua VM berada di zona yang sama, dan traffic jaringan yang menggunakan alamat IP internal antar-VM di zona yang sama ditawarkan tanpa biaya. Dalam cluster multi-zona, VM master dan worker dapat berada di zona yang berbeda di region yang sama. Traffic jaringan antara VM di zona berbeda dalam region yang sama akan dikenai biaya transfer data antar-zona.
Untuk mengetahui detail harga, lihat Harga transfer data VM-VM dalam Google Cloud.
Membuat cluster multi-zona
Anda dapat membuat cluster multi-zona menggunakan Google Cloud CLI atau Dataproc API.
gcloud
Untuk membuat cluster multi-zona, jalankan perintah gcloud dataproc clusters create dengan flag --multizone. Jangan tentukan flag --zone.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--multizone \
--image-version=IMAGE_VERSION \
--master-machine-type=MASTER_MACHINE_TYPE \
--worker-machine-type=WORKER_MACHINE_TYPE \
--num-workers=NUM_WORKERS
Ganti kode berikut:
- CLUSTER_NAME: nama cluster.
- REGION: region Compute Engine yang tersedia untuk cluster, seperti
us-central1. - IMAGE_VERSION: versi image yang mendukung cluster multi-zona, seperti
2.3.37-debian12. Untuk mengetahui informasi selengkapnya, lihat Persyaratan dan batasan. - MASTER_MACHINE_TYPE: jenis mesin Compute Engine dari node master, seperti
n2-standard-4. - WORKER_MACHINE_TYPE: jenis mesin Compute Engine dari worker node utama, seperti
n2-standard-4. - NUM_WORKERS: jumlah worker utama dalam cluster. Nilai ini tidak boleh lebih besar dari
1000.
REST
Untuk membuat cluster multi-zona, kirim permintaan clusters.create. Dalam objek
gceClusterConfig
permintaan, biarkan kolom zoneUri kosong, dan tetapkan
kolom multiZoneConfig.targetShape ke ANY.
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": {
"multiZoneConfig": {
"targetShape": "ANY"
}
},
"softwareConfig": {
"imageVersion": "IMAGE_VERSION"
},
"masterConfig": {
"numInstances": 1,
"machineTypeUri": "MASTER_MACHINE_TYPE"
},
"workerConfig": {
"numInstances": NUM_WORKERS,
"machineTypeUri": "WORKER_MACHINE_TYPE"
}
}
}
Ganti kode berikut:
- PROJECT_ID: Project ID Google Cloud Anda.
- REGION: region Compute Engine yang tersedia untuk cluster, seperti
us-central1. - CLUSTER_NAME: nama cluster.
- IMAGE_VERSION: versi image yang mendukung cluster multi-zona, seperti
2.3.37-debian12. Untuk mengetahui informasi selengkapnya, lihat Persyaratan dan batasan. - MASTER_MACHINE_TYPE: jenis mesin Compute Engine dari node master, seperti
n2-standard-4. - NUM_WORKERS: jumlah worker utama dalam cluster. Nilai ini tidak boleh lebih besar dari
1000. - WORKER_MACHINE_TYPE: jenis mesin Compute Engine dari worker node utama, seperti
n2-standard-4.
Langkah berikutnya
- Pelajari lebih lanjut Penempatan Zona Otomatis.
- Pelajari cara menskalakan cluster Managed Service untuk Apache Spark.
- Pelajari bentuk distribusi target MIG regional.