VM Fleksibel Dataproc

VM fleksibel adalah fitur Dataproc yang memungkinkan Anda menentukan daftar jenis VM yang diprioritaskan untuk pekerja sekunder Dataproc saat membuat cluster Dataproc.

Mengapa menggunakan VM fleksibel?

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

Fitur Dataproc Fleksibel VM membantu keberhasilan permintaan pembuatan cluster Anda dengan memilih jenis VM pekerja sekunder dari daftar VM yang diberi peringkat, lalu menelusuri zona dalam region cluster yang Anda tentukan dengan ketersediaan jenis VM yang tercantum.

Terminologi

  • Jenis VM: Jenis, kapasitas memori, dan jumlah inti CPU dari instance VM. Dataproc mendukung penggunaan jenis VM kustom dan yang telah ditetapkan.

  • Pekerja sekunder: Pekerja sekunder tidak menyimpan data. Fungsi tersebut hanya berfungsi sebagai node pemrosesan. Anda dapat menggunakan pekerja sekunder untuk menskalakan komputasi tanpa menskalakan penyimpanan.

Batasan dan pertimbangan

  • VM fleksibel tersedia di Dataproc pada Compute Engine 2.0.74+, 2.1.22+, dan Dataproc yang lebih baru di versi image Compute Engine.

  • Selama rilis Pratinjau:

    • Anda dapat menentukan VM yang fleksibel hanya untuk pekerja sekunder.
    • Anda dapat menentukan jenis pekerja sekunder Spot atau non-preemptible sebagai VM fleksibel, tetapi tidak keduanya, dalam permintaan pembuatan cluster Anda. Jika Anda tidak menentukan jenis pekerja sekunder, Dataproc akan menggunakan Spot VM, yang bersifat preemptible.
  • Anda dapat menentukan hingga lima daftar jenis VM dengan peringkat, dengan maksimum 10 jenis VM dalam satu daftar. Untuk mengetahui informasi selengkapnya, lihat Cara meminta VM fleksibel.

  • Pembuatan cluster dengan VM fleksibel memerlukan penggunaan Penempatan zona otomatis Dataproc, sehingga Dataproc dapat 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 kelompok VM yang berbeda, tetapi harus memiliki jumlah memori dan inti yang sama.

  • Saat menyediakan VM fleksibel, Dataproc menggunakan reservasi yang tersedia dengan "cocok", tetapi tidak dengan reservasi "spesifik" (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.

  • Dataproc menerapkan kuota Google Cloud ke penyediaan VM yang fleksibel.

  • Meskipun Anda dapat menentukan rasio CPU-ke-memori yang berbeda untuk jenis V pekerja primer dan sekunder dalam sebuah cluster, hal ini dapat menyebabkan penurunan performa karena rasio CPU-ke-memori yang paling kecil digunakan sebagai unit container terkecil.

  • Jika Anda memperbarui cluster yang dibuat menggunakan VM fleksibel, Dataproc 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 Dataproc menggunakan Konsol Google Cloud, Google Cloud CLI, atau Dataproc API.

  • Anda dapat menentukan hingga lima daftar jenis VM dengan peringkat, dengan maksimum 10 jenis VM dalam satu daftar. Daftar dengan peringkat terendah memiliki prioritas tertinggi. Secara default, daftar VM fleksibel memiliki peringkat 0. Dalam daftar, Dataproc memprioritaskan jenis VM dengan reservasi yang tidak digunakan, diikuti dengan ukuran VM terbesar. Jenis VM dalam daftar dengan jumlah CPU yang sama diperlakukan sama.

Konsol

Untuk membuat cluster dengan VM fleksibel pekerja sekunder:

  1. Buka halaman Dataproc Buat cluster di Compute Engine di Konsol Google Cloud.

  2. Panel Siapkan cluster dipilih dengan kolom yang diisi dengan nilai default. Anda dapat mengubah nama yang disarankan dan region cluster, serta membuat perubahan lainnya. Pastikan Any dipilih sebagai Zona cluster agar penempatan zona otomatis Dataproc dapat memilih zona yang memiliki ketersediaan terbaik untuk jenis VM yang ditentukan dalam daftar VM fleksibel Anda.

  3. Pilih panel Configure node. Di bagian Node pekerja sekunder, tentukan jumlah dan preemtif pekerja sekunder.

    • Klik Tambahkan pekerja sekunder untuk setiap peringkat pekerja sekunder, dengan menentukan satu atau beberapa jenis mesin untuk disertakan dalam setiap peringkat.
  4. Setelah mengonfirmasi dan menentukan detail cluster di panel pembuatan cluster, klik Buat.

gcloud

Gunakan perintah gcloud dataproc clusters create untuk menambahkan beberapa flag secondary-worker-machine-types guna menentukan daftar VM fleksibel yang diberi peringkat untuk pekerja sekunder Dataproc. Jenis pekerja sekunder VM fleksibel default adalah Spot, yang merupakan jenis preemptible.

Dalam contoh gcloud CLI berikut, Dataproc mencoba menyediakan pekerja sekunder dengan VM n2-standard-8 terlebih dahulu (peringkat 0). Jika mesin n2-standard-8 tidak tersedia, Dataproc akan berupaya menyediakan VM e2-standard-8 atau t2d-standard-8 (peringkat 1) untuk pekerja sekunder.

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

Catatan:

  • --zone="": Fitur VM Fleksibel memerlukan penempatan zona otomatis Dataproc agar Dataproc dapat memilih zona yang memiliki jenis VM yang tersedia untuk digunakan. Meneruskan nilai kosong ("") ke flag --zone akan menggantikan pemilihan zona apa pun yang ditentukan di gcloud config list default Anda.

  • Dataproc menghasilkan properti role komponen berdasarkan inti dan memori mesin. Anda dapat mengganti properti yang dihasilkan sistem ini dengan flag --properties, menggunakan sintaksis berikut:

    --properties="ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY=VALUE"
    

    Dalam rilis Pratinjau, peran secondary_worker adalah satu-satunya peran yang didukung.

    Pada contoh berikut, tanda --properties mengubah jumlah inti mesin e2-standard-8 yang ditetapkan ke node pekerja sekunder dari 8 menjadi 6:

    --properties="secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6"
    

API

Gunakan instanceFlexibilityPolicy.instanceSelectionList sebagai bagian dari permintaan clusters.create Dataproc API untuk menentukan daftar machineTypes yang diberi peringkat bagi pekerja sekunder.

Contoh:

Cuplikan JSON berikut dari isi permintaan Dataproc clusters.create menentukan jenis mesin pekerja sekunder untuk peringkat 0 dan peringkat 1.

"config": {
  "secondaryWorkerConfig": {
    "instanceFlexibilityPolicy": {
      "instanceSelectionList": [
        {
          "machineTypes": [
            "n1-standard-4",
            "n2-standard-4"
          ],
          "rank": 0
        },
        {
          "machineTypes": [
            "e2-standard-4",
            "n2d-standard-4"
          ],
          "rank": 1
        }
      ]
    }
  }
}

Gunakan properti cluster untuk menyesuaikan peran komponen: Dataproc membuat properti role komponen berdasarkan inti VM dan memori. Anda dapat mengganti properti yang dihasilkan sistem ini dengan menambahkan SoftwareConfig.properties ke permintaan clusters.create, menggunakan sintaksis key=value berikut:

ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY=VALUE

Dalam rilis Pratinjau, peran secondary_worker adalah satu-satunya peran yang didukung.

Dalam contoh berikut, kolom properties mengubah jumlah core yang ditetapkan ke node pekerja sekunder VM e2-standard-8 dari 8 menjadi 6:

"secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6"