Memprioritaskan jenis VM dengan VM fleksibel

VM Fleksibel adalah fitur Managed Service untuk Apache Spark yang memungkinkan Anda menentukan daftar jenis VM yang diprioritaskan untuk node master, utama, dan pekerja sekunder Managed Service untuk Apache Spark saat Anda membuat cluster Managed Service untuk Apache Spark.

Mengapa menggunakan VM fleksibel?

Sebelumnya, jika jenis VM tidak tersedia saat Anda mengirimkan permintaan pembuatan cluster, permintaan akan gagal, dan Anda harus memperbarui permintaan, skrip, atau kode untuk menentukan jenis VM "terbaik berikutnya". Proses permintaan ulang ini dapat melibatkan beberapa iterasi hingga Anda menentukan jenis VM yang tersedia.

Fitur VM fleksibel Managed Service untuk Apache Spark membantu permintaan pembuatan cluster Anda berhasil dengan memilih jenis VM master, utama, dan pekerja sekunder dari daftar VM yang diberi peringkat, lalu menelusuri zona dalam region cluster yang ditentukan dengan ketersediaan jenis VM yang tercantum.

Batasan

Cluster yang menggunakan VM fleksibel tidak dapat dihentikan.

Terminologi

  • Jenis VM: Keluarga, kapasitas memori, dan jumlah core CPU instance VM. Managed Service untuk Apache Spark mendukung penggunaan jenis VM kustom dan yang telah ditetapkan.
  • Node master dan pekerja utama: Cluster memiliki node master dan minimal dua pekerja utama.
  • Pekerja sekunder: Pekerja sekunder bersifat opsional, dan tidak menyimpan data. Pekerja sekunder hanya berfungsi sebagai node pemrosesan. Anda dapat menggunakan pekerja sekunder untuk menskalakan komputasi tanpa menskalakan penyimpanan. Jenis pekerja sekunder VM fleksibel default adalah Spot VM, yang merupakan jenis preemptible (lihat Pekerja sekunder Managed Service untuk Apache Spark).

Penggunaan

  • VM Fleksibel tersedia di Managed Service untuk Apache Spark di Compute Engine 2.0.74+, 2.1.76+, 2.2.42+, dan versi image yang lebih baru .
  • Pembuatan cluster dengan VM Flex master atau pekerja utama memerlukan waktu lebih lama (sekitar 32 detik tambahan).
  • Nama cluster tidak boleh melebihi 45 karakter.
  • Jenis disk yang sama diperlukan untuk semua jenis VM.
  • Anda dapat menentukan hingga lima daftar jenis VM yang diberi peringkat, dengan maksimal 10 jenis VM dalam satu daftar. Untuk mengetahui informasi selengkapnya, lihat Cara meminta VM fleksibel.
  • Pembuatan cluster dengan VM fleksibel memerlukan penggunaan penempatan autozone Managed Service untuk Apache Spark, yang memungkinkan Managed Service untuk Apache Spark memilih zona yang memiliki kapasitas untuk memenuhi permintaan jenis VM Anda.
  • Jika permintaan pembuatan cluster Anda menyertakan kebijakan penskalaan otomatis, VM fleksibel dapat berasal dari keluarga VM yang berbeda, tetapi harus memiliki jumlah memori dan core yang sama.
  • Saat menyediakan VM fleksibel, Managed Service untuk Apache Spark menggunakan reservasi yang tersedia "yang cocok" , tetapi bukan reservasi "tertentu" (lihat Menggunakan instance yang dicadangkan). Jenis mesin yang cocok dengan reservasi akan dipilih terlebih dahulu dalam peringkat, diikuti oleh jenis VM dengan jumlah CPU terbesar.
  • Managed Service untuk Apache Spark menerapkan Google Cloud kuota ke penyediaan VM fleksibel.
  • Meskipun Anda dapat menentukan rasio CPU-ke-memori yang berbeda untuk jenis V pekerja utama dan sekunder dalam cluster, hal ini dapat menyebabkan penurunan performa karena rasio CPU-ke-memori terkecil digunakan sebagai unit container terkecil.
  • Jika Anda memperbarui cluster yang dibuat menggunakan VM fleksibel, Managed Service untuk Apache Spark akan memilih dan menambahkan pekerja dari daftar VM fleksibel yang Anda berikan saat membuat cluster.

Cara meminta VM fleksibel

Anda dapat menentukan VM fleksibel saat membuat cluster Managed Service untuk Apache Spark menggunakan Google Cloud konsol, Google Cloud CLI, atau Managed Service untuk Apache Spark API.

  • Anda dapat menentukan hingga lima daftar jenis VM yang diberi peringkat, dengan maksimal 10 jenis VM dalam satu daftar. Daftar yang diberi peringkat terendah memiliki prioritas tertinggi. Secara default, daftar VM fleksibel memiliki peringkat 0. Dalam daftar, Managed Service untuk Apache Spark memprioritaskan jenis VM dengan reservasi yang tidak digunakan, diikuti oleh ukuran VM terbesar. Jenis VM dalam daftar dengan jumlah CPU yang sama diperlakukan sama.

Konsol

Untuk membuat cluster dengan VM fleksibel pekerja sekunder, lakukan hal berikut:

  1. Buka halaman Managed Service untuk Apache Spark Create a cluster on Compute Engine di Google Cloud konsol.
  2. Panel Set up cluster dipilih dengan kolom yang diisi dengan nilai default. Anda dapat mengubah nama yang disarankan dan region cluster, serta melakukan perubahan lainnya. Pastikan Any dipilih sebagai Zone cluster untuk memungkinkan penempatan autozone Managed Service untuk Apache Spark memilih zona yang memiliki ketersediaan terbaik untuk jenis VM yang ditentukan dalam daftar VM fleksibel Anda.
  3. Pilih panel Configure nodes. Di bagian Secondary worker nodes, tentukan jumlah dan preemptibilitas pekerja sekunder.
    • Klik Add a secondary worker untuk setiap peringkat pekerja sekunder, dengan menentukan satu atau beberapa jenis mesin yang akan disertakan dalam setiap peringkat.
  4. Setelah mengonfirmasi dan menentukan detail cluster di panel pembuatan cluster, klik Create.

gcloud

Gunakan gcloud dataproc clusters create perintah untuk menambahkan beberapa master-machine-types, worker-machine-types dan secondary-worker-machine-types flag guna menentukan daftar VM fleksibel yang diberi peringkat untuk pekerja master, utama, dan sekunder.

Contoh berikut meminta jenis VM master, utama, dan sekunder dengan prioritas berikut:

  • Menyediakan VM e2-standard-8 jika tersedia (peringkat 0); jika e2-standard-8 mesin tidak tersedia, sediakan VM n2-standard-8 (peringkat 1).

Karena jenis pekerja sekunder tidak ditentukan, VM sekunder Spot preemptible akan disediakan.

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --zone="" \
    --master-machine-types="type=e2-standard-8,rank=0" \
    --master-machine-types="type=n2-standard-8,rank=1" \
    --num-workers=10 \
    --worker-machine-types="type=e2-standard-8,rank=0" \
    --worker-machine-types="type=n2-standard-8,rank=1" \
    --num-secondary-workers=4 \
    --secondary-worker-machine-types="type=e2-standard-8,rank=0" \
    --secondary-worker-machine-types="type=n2-standard-8,rank=1"

Catatan:

  • --zone="": Fitur VM fleksibel memerlukan penempatan autozone Managed Service untuk Apache Spark agar Managed Service untuk Apache Spark dapat memilih zona yang memiliki jenis VM Anda yang tersedia untuk digunakan. Mengirimkan nilai kosong ("") ke flag --zone akan mengganti pemilihan zona yang ditentukan dalam gcloud config list default Anda.

API

Gunakan instanceFlexibilityPolicy.instanceSelectionList sebagai bagian dari permintaan Managed Service untuk Apache Spark API clusters.create untuk menentukan daftar machineTypes yang diberi peringkat untuk pekerja master, utama, dan sekunder.

Contoh: Cuplikan JSON berikut dari isi permintaan clusters.create menentukan jenis mesin master (masterConfig), pekerja utama (workerConfig), dan pekerja sekunder (secondaryWorkerConfig) dengan peringkat 0 dan peringkat 1.

{
  "projectId": "PROJECT_ID",
  "clusterName": "CLUSTER_NAME",
  "config": {
    "gceClusterConfig": {
      "zoneUri": ""
    },
    "masterConfig": {
      "numInstances": 1,
      "instanceFlexibilityPolicy": {
        "instanceSelectionList": [
          {
            "machineTypes": ["e2-standard-8"],
            "rank": 0
          },
          {
            "machineTypes": ["n2-standard-8"],
            "rank": 1
          }
        ]
      }
    },
    "workerConfig": {
      "numInstances": 10,
      "instanceFlexibilityPolicy": {
        "instanceSelectionList": [
          {
            "machineTypes": ["e2-standard-8"],
            "rank": 0
          },
          {
            "machineTypes": ["n2-standard-8"],
            "rank": 1
          }
        ]
      }
    },
    "secondaryWorkerConfig": {
      "numInstances": 4,
      "instanceFlexibilityPolicy": {
        "instanceSelectionList": [
          {
            "machineTypes": ["e2-standard-8"],
            "rank": 0
          },
          {
            "machineTypes": ["n2-standard-8"],
            "rank": 1
          }
        ]
      }
    }
  }
}

Mengganti properti VM Flex

Managed Service untuk Apache Spark menetapkan properti di tingkat cluster. Saat membuat cluster yang menggunakan VM fleksibel, Anda dapat mengganti properti yang dibuat sistem untuk jenis VM Flex pekerja utama dan sekunder.

gcloud

Untuk mengganti properti saat membuat cluster, gunakan flag --properties dengan sintaksis berikut:

--properties="$ROLE:$MACHINE_TYPE:$COMPONENT_PREFIX:$COMPONENT_PROPERTY=$VALUE"
  • ROLE dapat berupa primary_worker atau secondary_worker.
  • Pisahkan beberapa properti dengan koma.

Jalankan perintah gcloud dataproc clusters create berikut untuk mengganti jumlah vCPU yang dialokasikan YARN untuk NodeManager pada pekerja sekunder. Contoh ini menetapkan nilai yarn.nodemanager.resource.cpu-vcores di yarn-site.xml ke 6 untuk semua VM pekerja sekunder e2-standard-8 dan n2-standard-8.

gcloud dataproc clusters create CLUSTER_NAME \
    --num-workers=10 \
    --num-secondary-workers=4 \
    --worker-machine-types="type=e2-standard-8,rank=0" \
    --worker-machine-types="type=n2-standard-8,rank=1" \
    --master-machine-types="type=e2-standard-8,rank=0" \
    --master-machine-types="type=n2-standard-8,rank=1" \
    --secondary-worker-machine-types="type=e2-standard-8,rank=0" \
    --secondary-worker-machine-types="type=n2-standard-8,rank=1" \
    --region=us-central1 \
    --zone="" \
    --properties="secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6,secondary_worker:n2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6"

API

Untuk mengganti properti, tentukan properti tersebut di kolom properties objek SoftwareConfig dalam permintaan pembuatan cluster Anda.

Gunakan sintaksis berikut untuk kunci properti:

ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY
  • ROLE dapat berupa primary_worker atau secondary_worker.

Objek SoftwareConfig berikut mengganti jumlah vCPU yang dialokasikan YARN untuk NodeManager pada pekerja sekunder. Contoh ini menetapkan nilai yarn.nodemanager.resource.cpu-vcores ke 6 untuk semua VM pekerja sekunder e2-standard-8 dan n2-standard-8.

{
  "imageVersion":"2.2.42",
  "properties": {
    "secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores" : "6",
    "secondary_worker:n2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores" : "6"
  }
}

Langkah berikutnya