VM Fleksibel adalah fitur Dataproc yang memungkinkan Anda menentukan daftar jenis VM yang diprioritaskan untuk node master, primer, dan sekunder Dataproc saat Anda membuat cluster Dataproc.
Mengapa menggunakan VM fleksibel?
Sebelumnya, jika jenis VM tidak tersedia saat Anda mengirimkan permintaan pembuatan cluster, permintaan akan gagal, dan Anda perlu 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 Dataproc membantu permintaan pembuatan cluster Anda berhasil dengan memilih jenis VM pekerja utama, primer, dan sekunder dari daftar VM yang diberi peringkat, lalu menelusuri zona dalam region cluster yang ditentukan dengan ketersediaan jenis VM yang tercantum.
Terminologi
- Jenis VM: Kelompok, kapasitas memori, dan jumlah core CPU instance VM. Dataproc mendukung penggunaan jenis VM standar dan kustom.
- Node master dan pekerja utama: Cluster memiliki node master dan setidaknya dua pekerja utama.
- Worker sekunder: Worker sekunder bersifat opsional, dan tidak menyimpan data. Node ini hanya berfungsi sebagai node pemrosesan. Anda dapat menggunakan worker sekunder untuk menskalakan komputasi tanpa menskalakan penyimpanan. Jenis pekerja sekunder VM fleksibel default adalah Spot VM, yang merupakan jenis preemptible (lihat Pekerja sekunder Dataproc).
Penggunaan
- VM fleksibel tersedia di Dataproc
on Compute Engine
2.0.74+,2.1.76+,2.2.42+, dan versi image yang lebih baru. - Pembuatan cluster dengan VM Fleksibel master atau worker primer membutuhkan 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 Dataproc, yang memungkinkan Dataproc 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 berbagai jenis VM, tetapi harus memiliki jumlah memori dan jumlah core yang sama.
- Saat menyediakan VM fleksibel, Dataproc menggunakan reservasi yang tersedia "yang cocok", tetapi bukan reservasi "tertentu" (lihat Menggunakan instance yang dicadangkan). Jenis mesin yang cocok dengan reservasi dipilih terlebih dahulu dalam peringkat, diikuti dengan jenis VM dengan jumlah CPU terbesar.
- Dataproc 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 mengupdate 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 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, Dataproc memprioritaskan jenis VM dengan pemesanan 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, lakukan hal berikut:
- Buka halaman Dataproc Create a cluster on Compute Engine di konsol Google Cloud .
- 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 mengizinkan penempatan zona otomatis Dataproc memilih zona yang memiliki ketersediaan terbaik untuk jenis VM yang ditentukan dalam daftar VM fleksibel Anda.
- Pilih panel Configure nodes. Di bagian Secondary worker nodes, tentukan jumlah dan preemptibilitas worker sekunder.
- Klik Tambahkan pekerja sekunder untuk setiap peringkat pekerja sekunder, dengan menentukan satu atau beberapa jenis mesin yang akan disertakan dalam setiap peringkat.
- Setelah mengonfirmasi dan menentukan detail cluster di panel pembuatan cluster, klik Create.
gcloud
Gunakan perintah
gcloud dataproc clusters create
untuk menambahkan beberapa flag master-machine-types, worker-machine-types, dan secondary-worker-machine-types
guna menentukan daftar VM fleksibel berperingkat untuk pekerja master, primer, dan
sekunder.
Contoh berikut meminta jenis VM master, primer, dan sekunder dengan prioritas berikut:
- Sediakan VM
e2-standard-8jika tersedia (peringkat 0); jika mesine2-standard-8tidak tersedia, sediakan VMn2-standard-8(peringkat 1).
Karena jenis worker 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 zona otomatis Dataproc agar Dataproc dapat memilih zona yang memiliki jenis VM Anda yang tersedia untuk digunakan. Meneruskan nilai kosong ("") ke tanda--zoneakan menggantikan pilihan zona yang ditentukan digcloud config listdefault Anda.
API
Gunakan instanceFlexibilityPolicy.instanceSelectionList
sebagai bagian dari permintaan
clusters.create
Dataproc API untuk menentukan daftar berperingkat
machineTypes
untuk master, pekerja utama, dan pekerja sekunder.
Contoh: Cuplikan JSON berikut dari clusters.create
isi permintaan
menentukan jenis mesin master (masterConfig), worker utama (workerConfig), dan worker 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
Dataproc 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 Anda membuat cluster, gunakan flag --properties
dengan sintaksis berikut:
--properties="$ROLE:$MACHINE_TYPE:$COMPONENT_PREFIX:$COMPONENT_PROPERTY=$VALUE"
- ROLE dapat berupa
primary_workeratausecondary_worker. - Pisahkan beberapa properti dengan koma.
Jalankan perintah gcloud dataproc clusters create berikut untuk mengganti
jumlah vCPU yang dialokasikan YARN untuk NodeManager pada worker
sekunder. Contoh ini menetapkan nilai yarn.nodemanager.resource.cpu-vcores di
yarn-site.xml ke 6 untuk semua VM worker 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_workeratausecondary_worker.
Objek SoftwareConfig berikut menggantikan jumlah vCPU yang dialokasikan YARN untuk NodeManager pada pekerja sekunder. Contoh ini menetapkan nilai
yarn.nodemanager.resource.cpu-vcores ke 6
untuk semua VM worker 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
- Pelajari lebih lanjut properti cluster Dataproc.
- Pelajari cara membuat cluster Dataproc.