Flexible VMs היא תכונה של Managed Service for Apache Spark שמאפשרת לכם לציין רשימות עם עדיפות של סוגי מכונות וירטואליות עבור צמתים ראשיים, ראשיים משניים ועובדים משניים של Managed Service for Apache Spark כשאתם יוצרים אשכול של Managed Service for Apache Spark.
למה כדאי להשתמש במכונות וירטואליות גמישות?
הבעיה: אם סוג של מכונה וירטואלית לא זמין כששולחים בקשה ליצירת אשכול, הבקשה נכשלת וצריך לעדכן את הבקשה, הסקריפט או הקוד כדי לציין סוג של מכונה וירטואלית שהוא 'הכי טוב הבא'. תהליך הבקשה מחדש הזה יכול לכלול כמה חזרות עד שתציינו סוג של מכונה וירטואלית שזמין.
הפתרון: התכונה 'מכונות וירטואליות גמישות' ב-Managed Service for Apache Spark עוזרת לבחור סוגים של מכונות וירטואליות ראשיות, ראשוניות ומשניות מתוך רשימות המכונות הווירטואליות המדורגות, ואז לחפש אזורים באזור האשכול שצוין עם זמינות של סוגי המכונות הווירטואליות שמופיעים ברשימה, כדי שהבקשה ליצירת אשכול תצליח.
מגבלות
- אי אפשר לעצור אשכולות שמשתמשים במכונות וירטואליות גמישות.
- באשכולות עם זמינות גבוהה אי אפשר להשתמש במכונות וירטואליות גמישות בצומתי ה-Master, אבל אפשר להשתמש בהן בצומתי העובד.
הסברים על המונחים
- סוג מכונה וירטואלית: המשפחה, קיבולת הזיכרון ומספר ליבות המעבד של מכונה וירטואלית. Managed Service for Apache Spark תומך בשימוש בסוגים מוגדרים מראש של מכונות וירטואליות וסוגים בהתאמה אישית.
- צומתי מאסטר וצומתי עובד ראשיים: כברירת מחדל, באשכול Managed Service for Apache Spark יש צומת מאסטר אחד ושני צומתי עובד ראשיים.
- קלאסטר בזמינות גבוהה (HA) כולל שלושה צמתי מאסטר.
- לאשכול עם צומת יחיד יש צומת אחד שפועל כצומת ראשי וכצומת עובד.
- קלאסטר עם אפס קנה מידה כולל רק צומת ראשי ועובדים משניים (ללא עובדים ראשיים).
- צמתי עובדים משניים: צמתי עובדים משניים לא מאחסנים נתונים ופועלים רק כצמתי עיבוד. אפשר להשתמש ב-secondary workers כדי להרחיב את יכולת החישוב בלי להרחיב את נפח האחסון. סוג ברירת המחדל של מכונה וירטואלית (VM) גמישה מסוג worker משני הוא VM במודל Spot, שהיא סוג זמני.
Usage
- מכונות VM גמישות זמינות ב-Managed Service for Apache Spark ב-Managed Service for Apache Spark
2.0.74+,2.1.76+,2.2.42+וב-imageversions מאוחרות יותר.- החל מגרסת התמונה
3.0, כשיוצרים אשכול בלי לציין סוג מכונה לצומת של האשכול, Managed Service for Apache Spark מציין את הצומת עם רשימה מדורגת של סוגי מכונות וירטואליות גמישות, כמו רשימה מדורגת של סוגי מכונות מסדרות N4, N2 ו-E2, כשהרשימה מותאמת לזמינות המשאבים.
- החל מגרסת התמונה
אפשר לציין עד חמש רשימות מדורגות של סוגי מכונות וירטואליות, עם עד 10 סוגים של מכונות וירטואליות בכל רשימה.
אתם יכולים לכלול מכונות וירטואליות גמישות בתבניות של תהליכי עבודה כדי לספק עמידות מפני חוסר זמינות של משאבים כשיוצרים אשכולות מהתבנית.
המלצה: מומלץ להפעיל את Managed Service for Apache Spark autozone placement, כדי ש-Managed Service for Apache Spark יוכל לבחור אזור עם קיבולת לאספקת מכונות וירטואליות לפי הדרישה.
כברירת מחדל, צומת באשכול חייב להשתמש בסוג דיסק אחד. אתם יכולים להשתמש בהגדרות ברירת מחדל שונות לדיסקים כדי לציין סוגים שונים של דיסקים לסוגים שונים של מכונות שצוינו לצומת של אשכול מכונות וירטואליות גמישות.
אפשר לציין יחסי CPU לזיכרון שונים עבור סוגי worker VM ראשיים ומשניים באשכול, אבל זה עלול להוביל לירידה בביצועים כי היחס הקטן ביותר בין CPU לזיכרון משמש כיחידת הקונטיינר הקטנה ביותר.
אם בקשת יצירת האשכול כוללת מדיניות של שינוי גודל אוטומטי, המכונות הווירטואליות הגמישות יכולות להיות ממשפחות שונות של מכונות וירטואליות, אבל הן חייבות להיות עם אותה כמות זיכרון ומספר ליבות.
קודם נבחרים סוגי מכונות שתואמים להזמנות בתוך דרגה, ואחריהם סוגי מכונות וירטואליות עם מספר המעבדים הגדול ביותר.
ב-Managed Service for Apache Spark מוחלים Google Cloud מכסות על הקצאת מכונות וירטואליות גמישה.
אם מעדכנים אשכול שנוצר באמצעות מכונות וירטואליות גמישות, שירות Managed Service for Apache Spark בוחר ומוסיף עובדים מרשימות המכונות הווירטואליות הגמישות שסיפקתם כשנוצר האשכול.
איך מבקשים מכונות וירטואליות גמישות
אפשר לציין עד חמש רשימות מדורגות של סוגי מכונות וירטואליות, עם עד 10 סוגים של מכונות וירטואליות בכל רשימה. לרשימות עם הדירוג הנמוך ביותר יש את העדיפות הגבוהה ביותר. כברירת מחדל, ל-VM גמיש יש דירוג של 0. ברשימה, Managed Service for Apache Spark נותן עדיפות לסוגי מכונות וירטואליות עם הזמנות שלא נעשה בהן שימוש, ואחריהן לגדלים הגדולים ביותר של מכונות וירטואליות. סוגי מכונות וירטואליות ברשימה עם אותו מספר ליבות CPU נחשבים שווים.
אתם יכולים לבקש מכונות וירטואליות גמישות כשאתם יוצרים אשכול של Managed Service for Apache Spark באמצעות Google Cloud המסוף, Google Cloud CLI, Dataproc API, Managed Service for Apache Airflow או Terraform.
המסוף
כדי ליצור אשכול עם מכונות וירטואליות גמישות:
- פותחים את הדף Create cluster.
- לוחצים על הגדרה נוספת כדי להרחיב את הקטע.
- עורכים את העובדים הראשיים או את העובדים המשניים. בקטע Add worker types (הוספת סוגי עובדים), מציינים מכונות וירטואליות נוספות עם דירוג.
gcloud
משתמשים בפקודה gcloud dataproc clusters create עם הדגלים master-instance-selection, worker-instance-selection ו-secondary-worker-instance-selection כדי לציין רשימות מדורגות של מכונות וירטואליות גמישות לעובדים הראשיים, העיקריים והמשניים.
בדוגמה הבאה מבוקשים סוגי מכונות וירטואליות ראשיות, משניות וראשיות עם העדיפויות הבאות:
- הקצאת מכונות וירטואליות מסוג
e2-standard-8אם הן זמינות (דירוג 0). אם מכונות מסוגe2-standard-8לא זמינות, הקצאת מכונות וירטואליות מסוגn2-standard-8(דירוג 1).
מכיוון שלא צוין סוג worker משני, יוקצו מכונות וירטואליות משניות מסוג Spot שניתן להפסיק את השימוש בהן.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--zone="" \
--master-instance-selection='{"machineTypes":["e2-standard-8"],"rank":0}' \
--master-instance-selection='{"machineTypes":["n2-standard-8"],"rank":1}' \
--num-workers=10 \
--worker-instance-selection='{"machineTypes":["e2-standard-8"],"rank":0}' \
--worker-instance-selection='{"machineTypes":["n2-standard-8"],"rank":1}' \
--num-secondary-workers=4 \
--secondary-worker-instance-selection='{"machineTypes":["e2-standard-8"],"rank":0}' \
--secondary-worker-instance-selection='{"machineTypes":["n2-standard-8"],"rank":1}'
הערות:
-
--zone="": אם מגדירים את הדגל הזה לערך ריק, מופעלת הצבה אוטומטית של אזורים, שמאפשרת ל-Managed Service for Apache Spark לבחור אזור שבו סוגי המכונות הווירטואליות המבוקשים זמינים לשימוש. ערך הדגל הזה מבטל כל בחירה של אזור שצוינה ב-gcloud config listשמוגדר כברירת מחדל.
API
משתמשים ב-instanceFlexibilityPolicy.instanceSelectionList
כחלק מבקשה של Dataproc API
clusters.create
כדי לציין רשימה מדורגת של machineTypes
למאסטר, לעובדים הראשיים ולעובדים המשניים.
לדוגמה: קטע ה-JSON הבא מתוך clusters.create
גוף הבקשה מציין את סוגי המכונות master (masterConfig), primary worker (workerConfig) ו-secondary worker (secondaryWorkerConfig) עם דרגות 0 ו-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
}
]
}
}
}
}
Cloud Composer
אפשר להשתמש באופרטור DataprocCreateClusterOperator ב-DAG של Apache Airflow כדי לציין instance_flexibility_policy לעובדים ראשיים, משניים ומשניים:
from airflow import DAG
from airflow.models import Variable
from airflow.providers.google.cloud.operators.dataproc import (
DataprocCreateClusterOperator,
)
from airflow.utils.dates import days_ago
PROJECT_ID = Variable.get("DATAPROC_PROJECT_ID")
REGION = Variable.get("DATAPROC_REGION")
CLUSTER_NAME = Variable.get("DATAPROC_CLUSTER_NAME")
NUM_WORKERS = int(Variable.get("DATAPROC_NUM_WORKERS"))
MIN_NUM_WORKERS = int(Variable.get("DATAPROC_MIN_NUM_WORKERS"))
FLEX_SELECTION_LIST = [
{
"machine_types": ["e2-standard-8"],
"rank": 0,
},
{
"machine_types": ["n2-standard-8"],
"rank": 1,
},
]
CLUSTER_CONFIG = {
"gce_cluster_config": {
"zone_uri": "",
},
"master_config": {
"num_instances": 1,
"instance_flexibility_policy": {
"instance_selection_list": FLEX_SELECTION_LIST,
},
},
"worker_config": {
"num_instances": NUM_WORKERS,
"min_num_instances": MIN_NUM_WORKERS,
"instance_flexibility_policy": {
"instance_selection_list": FLEX_SELECTION_LIST,
},
},
"secondary_worker_config": {
"num_instances": 4,
"instance_flexibility_policy": {
"instance_selection_list": FLEX_SELECTION_LIST,
},
},
}
with DAG(
"dataproc_flexvm_dag",
start_date=days_ago(1),
schedule_interval=None,
catchup=False,
) as dag:
create_dataproc_cluster = DataprocCreateClusterOperator(
task_id="create_dataproc_flexvm_cluster",
project_id=PROJECT_ID,
region=REGION,
cluster_name=CLUSTER_NAME,
cluster_config=CLUSTER_CONFIG,
)
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform. למידע נוסף, ראו את מאמרי העזרה לספקים של Terraform.
כדי לציין רשימות מדורגות של מכונות וירטואליות גמישות, משתמשים במשאב google_dataproc_cluster עם בלוקים של instance_flexibility_policy:
variable "project_id" {
type = string
description = "The Google Cloud project ID"
}
variable "region" {
type = string
description = "The Google Cloud region for Dataproc deployment"
}
variable "cluster_name" {
type = string
description = "Name of the Dataproc cluster"
}
variable "num_workers" {
type = number
description = "Target number of primary workers"
}
variable "min_num_workers" {
type = number
description = "Minimum primary workers for partial cluster creation"
}
resource "google_dataproc_cluster" "flex_cluster" {
name = var.cluster_name
project = var.project_id
region = var.region
cluster_config {
gce_cluster_config {
zone = ""
}
master_config {
num_instances = 1
instance_flexibility_policy {
instance_selection_list {
machine_types = ["e2-standard-8"]
rank = 0
}
instance_selection_list {
machine_types = ["n2-standard-8"]
rank = 1
}
}
}
worker_config {
num_instances = var.num_workers
min_num_instances = var.min_num_workers
instance_flexibility_policy {
instance_selection_list {
machine_types = ["e2-standard-8"]
rank = 0
}
instance_selection_list {
machine_types = ["n2-standard-8"]
rank = 1
}
}
}
secondary_worker_config {
num_instances = 4
instance_flexibility_policy {
instance_selection_list {
machine_types = ["e2-standard-8"]
rank = 0
}
instance_selection_list {
machine_types = ["n2-standard-8"]
rank = 1
}
}
}
}
}
שינויים בדיסק
אתם יכולים לציין שינויים בהגדרות הדיסק לכל סוג מכונה (בחירת מופע) במפרט של מכונת ה-VM הגמישה. כך אפשר להתאים אישית דיסקים לאתחול, לבטל SSD מקומי ולצרף דיסקים נוספים לסוגים ספציפיים של מכונות.
אפשרויות וכללים לביטול הגדרות של דיסקים
אפשרויות ההגדרה של שינוי ברירת המחדל של הדיסק:
- הגדרת בסיס לדיסק: הגדרת דיסק שצוינה לצומת של אשכול, למשל ציון גודל דיסק אתחול לעובדים ראשיים באמצעות ה-CLI של gcloud
--worker-boot-disk-sizeאו השדהworkerConfig.diskConfig.bootDiskSizeGbשל Dataproc API. - שינויים בהגדרות הדיסק של בחירת מופע: הגדרות דיסק לסוגי מכונות שצוינו לצומת של אשכול.
כללים לשינוי הגדרות של דיסק:
הגדרת בסיס לדיסק: אם אף בחירה של מופע לצומת באשכול לא כוללת החלפה של
diskConfig, אפשר להגדיר הגדרת בסיס לדיסק עבור הצומת. תצורת הדיסק הבסיסית הזו חלה על כל הבחירות של המופעים עבור הצומת.הגדרות דיסק לבחירת מופע: אם בחירת מופע לצומת באשכול כוללת החלפה של
diskConfig, כל בחירות המופעים בקבוצת הצמתים חייבות לכלול החלפה שלdiskConfig(אם מגדירים גם הגדרת דיסק בסיסית לצומת, תתרחש שגיאת אימות).תאימות של סוגי מכונות: כל סוגי המכונות בתוך
InstanceSelectionאחד צריכים להיות תואמים ל-diskConfigשצוין. לדוגמה, אי אפשר לקבץ סוג מכונהe2-standard-4שלא תומך ב-hyperdisk עם סוג מכונהn4-standard-4שדורש hyperdisk באותו בחירת מופע, כיdiskConfigלא יכול לספק את שני סוגי המכונות.תמיכה ב-SSD מקומי: אם מגדירים SSD מקומי (
numLocalSsds> 0) בהגדרת החלפת דיסק, כל סוגי המכונות בבחירת המכונה חייבים לתמוך ב-SSD מקומי.שדות חובה להגדרת החלפת דיסק:
- אם מגדירים
diskConfigלבחירת מופע, חובה להגדיר אתbootDiskType. - אם מגדירים את
attachedDiskConfigs, גםtypeוגםdiskSizeGbהם חובה לכל דיסק שמצורף.
- אם מגדירים
דוגמאות להגדרות של החלפת דיסק
בדוגמה הבאה מפורטות אפשרויות ההגדרה של החלפת הדיסק עבור צמתי האשכול הבאים:
- צמתי בקרה: שימוש בדיסקים של אתחול שמוגדרים כברירת מחדל.
- עובדים ראשיים: שימוש בדיסקים מותאמים אישית לכל בחירת מופע: לדוגמה,
n4-standard-4משתמש ב-hyperdisk-balanced, ואילוn2-standard-4משתמש ב-pd-standard. - עובדים משניים: שימוש בהגדרת דיסק בסיסית בהתאמה אישית:
pd-ssdעם200 GB, שמוחלת על כל הבחירות של המופעים.
YAML של gcloud
מגדירים את המדיניות הגמישה של המכונות הווירטואליות בקובצי YAML עבור הצמתים הראשיים, צמתי העובדים הראשיים וצמתי העובדים המשניים:
master-flex-policy.yaml:instanceFlexibilityPolicy: instanceSelectionList: - machineTypes: - e2-standard-8 rank: 0 - machineTypes: - n2-standard-8 rank: 1worker-flex-policy.yaml:instanceFlexibilityPolicy: instanceSelectionList: - machineTypes: - n4-standard-4 rank: 0 diskConfig: bootDiskType: hyperdisk-balanced bootDiskSizeGb: 100 bootDiskProvisionedIops: 6000 bootDiskProvisionedThroughput: 400 attachedDiskConfigs: - type: hyperdisk-throughput diskSizeGb: 300 - machineTypes: - n2-standard-4 rank: 0 diskConfig: bootDiskType: pd-standard bootDiskSizeGb: 400secondary-worker-flex-policy.yaml:instanceFlexibilityPolicy: instanceSelectionList: - machineTypes: - e2-standard-8 rank: 0 - machineTypes: - n2-standard-8 rank: 1
משתמשים בפקודה gcloud dataproc clusters create כדי להעביר את קובצי המדיניות:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--zone="" \
--num-masters=1 \
--master-instance-flexibility-policy-file=master-flex-policy.yaml \
--num-workers=10 \
--worker-instance-flexibility-policy-file=worker-flex-policy.yaml \
--num-secondary-workers=4 \
--secondary-worker-boot-disk-type=pd-ssd \
--secondary-worker-boot-disk-size=200 \
--secondary-worker-instance-flexibility-policy-file=secondary-worker-flex-policy.yaml
JSON של gcloud
משתמשים בפקודה gcloud dataproc clusters create עם מפרטי JSON מוטבעים ב-diskConfig ב---worker-instance-selection:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--zone="" \
--num-masters=1 \
--master-instance-selection='{"machineTypes":["e2-standard-8"],"rank":0}' \
--master-instance-selection='{"machineTypes":["n2-standard-8"],"rank":1}' \
--num-workers=10 \
--worker-instance-selection='{"machineTypes":["n4-standard-4"],"rank":0,"diskConfig":{"bootDiskType":"hyperdisk-balanced","bootDiskSizeGb":100,"bootDiskProvisionedIops":6000,"bootDiskProvisionedThroughput":400,"attachedDiskConfigs":[{"type":"hyperdisk-throughput","diskSizeGb":300}]}}' \
--worker-instance-selection='{"machineTypes":["n2-standard-4"],"rank":0,"diskConfig":{"bootDiskType":"pd-standard","bootDiskSizeGb":400}}' \
--num-secondary-workers=4 \
--secondary-worker-boot-disk-type=pd-ssd \
--secondary-worker-boot-disk-size=200 \
--secondary-worker-instance-selection='{"machineTypes":["e2-standard-8"],"rank":0}' \
--secondary-worker-instance-selection='{"machineTypes":["n2-standard-8"],"rank":1}'
API
משתמשים בשדה diskConfig בתוך instanceFlexibilityPolicy.instanceSelectionList בבקשת Dataproc API clusters.create.
דוגמה לתוכן בקשת JSON:
{
"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": ["n4-standard-4"],
"rank": 0,
"diskConfig": {
"bootDiskType": "hyperdisk-balanced",
"bootDiskSizeGb": 100,
"bootDiskProvisionedIops": 6000,
"bootDiskProvisionedThroughput": 400,
"attachedDiskConfigs": [
{
"type": "hyperdisk-throughput",
"diskSizeGb": 2048
}
]
}
},
{
"machineTypes": ["n2-standard-4"],
"rank": 0,
"diskConfig": {
"bootDiskType": "pd-standard",
"bootDiskSizeGb": 400
}
}
]
}
},
"secondaryWorkerConfig": {
"numInstances": 4,
"diskConfig": {
"bootDiskType": "pd-ssd",
"bootDiskSizeGb": 200
},
"instanceFlexibilityPolicy": {
"instanceSelectionList": [
{
"machineTypes": ["e2-standard-8"],
"rank": 0
},
{
"machineTypes": ["n2-standard-8"],
"rank": 1
}
]
}
}
}
}
החלפת מאפיינים של מכונות וירטואליות גמישות
Managed Service for Apache Spark מגדיר מאפיינים ברמת האשכול. כשיוצרים אשכול שמשתמש במכונות וירטואליות גמישות, אפשר לשנות את המאפיינים שנוצרו על ידי המערכת עבור סוגי המכונות הווירטואליות הגמישות של העובדים הראשיים והמשניים.
gcloud
כדי לשנות מאפיינים כשיוצרים אשכול, משתמשים בדגל --properties עם התחביר הבא:
--properties="$ROLE:$MACHINE_TYPE:$COMPONENT_PREFIX:$COMPONENT_PROPERTY=$VALUE"
- ROLE יכול להיות
primary_workerאוsecondary_worker. - אם יש כמה מאפיינים, צריך להפריד ביניהם בפסיקים.
הפקודה הבאה של gcloud dataproc clusters create מבטלת את מספר המעבדים הווירטואליים ש-YARN מקצה ל-NodeManager בעובדים משניים. בדוגמה הזו, הערך yarn.nodemanager.resource.cpu-vcores ב-yarn-site.xml מוגדר ל-6 לכל המכונות הווירטואליות של e2-standard-8 ושל n2-standard-8.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--zone="" \
--master-instance-selection='{"machineTypes":["e2-standard-8"],"rank":0}' \
--master-instance-selection='{"machineTypes":["n2-standard-8"],"rank":1}' \
--num-workers=10 \
--worker-instance-selection='{"machineTypes":["e2-standard-8"],"rank":0}' \
--worker-instance-selection='{"machineTypes":["n2-standard-8"],"rank":1}' \
--num-secondary-workers=4 \
--secondary-worker-instance-selection='{"machineTypes":["e2-standard-8"],"rank":0}' \
--secondary-worker-instance-selection='{"machineTypes":["n2-standard-8"],"rank":1}' \
--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
כדי לשנות מאפיינים, מגדירים אותם בשדה properties של האובייקט SoftwareConfig בבקשה ליצירת אשכול.
משתמשים בתחביר הבא למפתח המאפיין:
ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY
- הערך של ROLE יכול להיות
primary_workerאוsecondary_worker.
אובייקט SoftwareConfig הבא מבטל את מספר המעבדים הווירטואליים ש-YARN מקצה ל-NodeManager בעובדים משניים. בדוגמה הזו, הערך yarn.nodemanager.resource.cpu-vcores מוגדר ל-6 לכל המכונות הווירטואליות של e2-standard-8 ושל 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"
}
}