Membuat cluster dengan Ketersediaan Tinggi

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 mencakup n4-standard, n4d-standard, n2-standard, dan n2d-standard (preferensi Peringkat 0), serta c4-standard dan c4d-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 mencakup n4-highmem, n4d-highmem, n2-highmem, dan n2d-highmem (preferensi Peringkat 0), serta c4-highmem dan c4d-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, dan C4D). 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 (atau zoneUri) 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.
    • 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.
  • Cluster node tunggal: Dalam cluster node tunggal (--single-node atau --cluster-type=single-node), hanya --master-flexible-config yang 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 menggunakan gcloud 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, seperti us-central1. Jangan tentukan --zone.
  • CORES: jumlah vCPU per instance VM. Harus berupa pangkat 2 (2, 4, 8, 16, atau 32).
  • HARDWARE_CLASS: class profil hardware, STANDARD atau PERFORMANCE.
  • NUM_WORKERS: jumlah worker node utama dalam cluster.
  • BOOT_DISK_SIZE: ukuran boot disk, seperti 100GB.

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:

  1. Biarkan gceClusterConfig.zoneUri kosong (atau hapus) untuk mengaktifkan penempatan Zona Otomatis.
  2. Tentukan objek masterFlexibleConfig dan workerFlexibleConfig.

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, seperti us-central1.
  • CLUSTER_NAME: nama cluster.

Opsional: Untuk menambahkan worker sekunder, sertakan objek secondaryWorkerFlexibleConfig dengan numInstances, coreCount, hardwareClass, dan bootDiskSizeGb yang diinginkan.

Langkah berikutnya