VM-Typen mit flexiblen VMs priorisieren

Flexible VMs ist ein Feature von Managed Service for Apache Spark, mit dem Sie priorisierte Listen von VM-Typen für Master-, primäre und sekundäre Worker-Knoten von Managed Service for Apache Spark angeben können, wenn Sie einen Managed Service for Apache Spark-Cluster erstellen.

Vorteile flexibler VMs

Das Problem: Wenn ein VM-Typ nicht verfügbar ist, wenn Sie eine Anfrage zur Clustererstellung senden, schlägt die Anfrage fehl. Sie müssen dann Ihre Anfrage, Ihr Skript oder Ihren Code aktualisieren, um einen „nächstbesten“ VM-Typ anzugeben. Dieser Vorgang kann mehrere Iterationen umfassen, bis Sie einen verfügbaren VM-Typ angeben.

Die Lösung: Mit dem flexiblen VM-Feature von Managed Service for Apache Spark kann Ihre Anfrage zur Clustererstellung erfolgreich abgeschlossen werden. Dazu werden Master-, primäre und sekundäre Worker-VM-Typen aus Ihren priorisierten VM-Listen ausgewählt und dann nach Zonen in der angegebenen Clusterregion gesucht, in denen die aufgeführten VM-Typen verfügbar sind.

Beschränkungen

  • Cluster, die flexible VMs verwenden, können nicht beendet werden.
  • Masterknoten in Hochverfügbarkeitsclustern können keine flexiblen VMs verwenden, Worker-Knoten in Hochverfügbarkeitsclustern jedoch schon.

Terminologie

  • VM-Typ: Die Familie, die Arbeitsspeicherkapazität und die Anzahl der CPU-Kerne einer VM-Instanz. Managed Service for Apache Spark unterstützt die Verwendung von vordefinierten und benutzerdefinierten VM-Typen.
  • Master- und primäre Worker-Knoten: Standardmäßig hat ein Managed Service for Apache Spark-Cluster einen Masterknoten und zwei primäre Worker-Knoten.
  • Sekundäre Worker-Knoten: Sekundäre Worker speichern keine Daten und fungieren nur als Verarbeitungsknoten. Mit sekundären Workern können Sie die Rechenleistung skalieren, ohne den Speicher zu skalieren. Der standardmäßige flexible VM-Sekundär-Worker-Typ ist eine Spot-VM, die ein Typ auf Abruf ist.

Nutzung

  • Flexible VMs sind in Managed Service for Apache Spark in den imageversions 2.0.74+, 2.1.76+, 2.2.42+ und höher von Managed Service for Apache Spark verfügbar.
    • Ab Image-Version 3.0 gibt Managed Service for Apache Spark, wenn Sie einen Cluster erstellen, ohne einen Maschinentyp für einen Clusterknoten anzugeben, den Knoten mit einer sortierten Liste flexibler VM-Maschinentypen an, z. B. einer sortierten Liste von Maschinentypen der Serien N4, N2 und E2. Die Liste ist für die Ressourcenverfügbarkeit optimiert.
  • Sie können bis zu fünf sortierte VM-Typlisten mit bis zu zehn VM-Typen pro Liste angeben.

  • Sie können flexible VMs in Workflowvorlagen einbinden, um die Ausfallsicherheit bei nicht verfügbaren Ressourcen zu erhöhen, wenn Cluster aus der Vorlage erstellt werden.

    Empfehlung: Aktivieren Sie die automatische Zonenplatzierung für Managed Service for Apache Spark. Dadurch kann Managed Service for Apache Spark eine Zone mit der Kapazität zum Bereitstellen der angeforderten VMs auswählen.

  • Standardmäßig muss ein Clusterknoten einen Laufwerkstyp verwenden. Sie können Laufwerksüberschreibungen verwenden, um verschiedene Laufwerkstypen für verschiedene Maschinentypen anzugeben, die für einen Flex-VM-Clusterknoten angegeben sind.

  • Sie können zwar unterschiedliche CPU-zu-Arbeitsspeicher-Verhältnisse für primäre und sekundäre Worker-VM-Typen in einem Cluster angeben, dies kann jedoch zu Leistungseinbußen führen, da das kleinste CPU-zu-Arbeitsspeicher-Verhältnis als kleinste Containereinheit verwendet wird.

  • Wenn Ihre Anfrage zur Clustererstellung eine Autoscaling-Richtlinie enthält, können flexible VMs aus verschiedenen VM-Familien stammen, müssen aber dieselbe Menge an Arbeitsspeicher und dieselbe Anzahl von Kernen haben.

  • Maschinentypen, die mit Reservierungen übereinstimmen, werden zuerst innerhalb eines Rangs ausgewählt, gefolgt von VM-Typen mit der größten Anzahl an CPUs.

  • Managed Service for Apache Spark wendet Google Cloud Kontingente auf die flexible VM-Bereitstellung an.

  • Wenn Sie einen Cluster aktualisieren, der mit flexiblen VMs erstellt wurde, wählt Managed Service for Apache Spark Worker aus den Listen flexibler VMs aus, die Sie beim Erstellen des Clusters angegeben haben, und fügt sie hinzu.

Flexible VMs anfordern

Sie können bis zu fünf sortierte VM-Typlisten mit bis zu zehn VM-Typen pro Liste angeben. Listen mit dem niedrigsten Rang haben die höchste Priorität. Standardmäßig haben flexible VM-Listen den Rang 0. Innerhalb einer Liste priorisiert Managed Service for Apache Spark VM-Typen mit nicht verwendeten Reservierungen, gefolgt von den größten VM-Größen. VM-Typen in einer Liste mit derselben CPU-Anzahl werden gleich behandelt.

Sie können flexible VMs anfordern, wenn Sie einen Managed Service for Apache Spark-Cluster mit der Google Cloud Console, der Google Cloud CLI, der Dataproc API, dem Managed Service for Apache Airflow oder Terraform erstellen.

Console

So erstellen Sie einen Cluster mit flexiblen VMs:

  1. Öffnen Sie die Seite Cluster erstellen.
  2. Klicken Sie auf Zusätzliche Konfiguration, um den Bereich zu maximieren.
  3. Bearbeiten Sie Primäre Worker oder Sekundäre Worker. Geben Sie unter Worker-Typen hinzufügen zusätzliche eingestufte VMs an.

gcloud

Verwenden Sie den Befehl gcloud dataproc clusters create mit den Flags master-instance-selection, worker-instance-selection und secondary-worker-instance-selection, um flexible VM-Listen für Master-, primäre und sekundäre Worker anzugeben.

Im folgenden Beispiel werden Master-, primäre und sekundäre VM-Typen mit den folgenden Prioritäten angefordert:

  • e2-standard-8-VMs bereitstellen, falls verfügbar (Rang 0); wenn keine e2-standard-8-Maschinen verfügbar sind, n2-standard-8-VMs bereitstellen (Rang 1).

Da der sekundäre Workertyp nicht angegeben ist, werden sekundäre Spot-VMs auf Abruf bereitgestellt.

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}'

Hinweise:

  • --zone="": Wenn Sie dieses Flag auf einen leeren Wert setzen, wird die automatische Zonenplatzierung aktiviert. Dadurch kann Managed Service for Apache Spark eine Zone auswählen, in der die angeforderten VM-Typen verfügbar sind. Dieser Flag-Wert überschreibt jede Zonenauswahl, die in Ihrer Standard-gcloud config list angegeben ist.

API

Verwenden Sie instanceFlexibilityPolicy.instanceSelectionList als Teil einer Dataproc API-Anfrage clusters.create, um eine nach Rang sortierte Liste von machineTypes für Master-, primäre und sekundäre Worker anzugeben.

Beispiel: Im folgenden JSON-Snippet aus einem Anfragetext für clusters.create werden die Maschinentypen für den Master (masterConfig), den primären Worker (workerConfig) und den sekundären Worker (secondaryWorkerConfig) mit den Rängen 0 und 1 angegeben.

{
  "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

Verwenden Sie den Operator DataprocCreateClusterOperator in einem Apache Airflow-DAG, um instance_flexibility_policy für Master-, primäre und sekundäre Worker anzugeben:

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

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle. Weitere Informationen finden Sie in der Referenzdokumentation des Anbieters zu Terraform.

Verwenden Sie die Ressource google_dataproc_cluster mit instance_flexibility_policy-Blöcken, um flexible VM-Listen mit Rangfolge anzugeben:

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
        }
      }
    }
  }
}

Laufwerksüberschreibungen

Sie können in Ihrer flexiblen VM-Spezifikation Laufwerksüberschreibungen für jeden Maschinentyp (Instanzauswahl) angeben. So können Sie Bootlaufwerke anpassen, lokale SSDs überschreiben und zusätzliche Laufwerke für bestimmte Maschinentypen anhängen.

Optionen und Regeln zum Überschreiben von Laufwerken

Konfigurationsoptionen für das Überschreiben von Laufwerken:

  • Basis-Laufwerkskonfiguration: Eine für einen Clusterknoten angegebene Laufwerkskonfiguration, z. B. die Angabe einer Bootlaufwerksgröße für primäre Worker mit dem gcloud CLI-Flag --worker-boot-disk-size oder dem Dataproc API-Feld workerConfig.diskConfig.bootDiskSizeGb.
  • Laufwerksüberschreibungen für die Instanzauswahl: Laufwerkskonfigurationen für Maschinentypen, die für einen Clusterknoten angegeben sind.

Regeln für die Konfiguration von Laufwerksüberschreibungen:

  • Basis-Laufwerkskonfiguration: Wenn keine Instanzauswahl für einen Clusterknoten eine diskConfig-Überschreibung enthält, können Sie eine Basis-Laufwerkskonfiguration für den Knoten definieren. Diese Basislaufwerkskonfiguration wird auf alle Instanzauswahlen für den Knoten angewendet.

  • Laufwerkskonfigurationen für die Instanzauswahl: Wenn eine Instanzauswahl für einen Clusterknoten eine diskConfig-Überschreibung enthält, müssen alle Instanzauswahlen in der Knotengruppe eine diskConfig enthalten. Wenn Sie auch eine Basis-Laufwerkskonfiguration für den Knoten definieren, tritt ein Validierungsfehler auf.

  • Kompatibilität von Maschinentypen: Alle Maschinentypen innerhalb einer einzelnen InstanceSelection müssen mit der angegebenen diskConfig kompatibel sein. Sie können beispielsweise den Maschinentyp e2-standard-4, der Hyperdisk nicht unterstützt, nicht mit dem Maschinentyp n4-standard-4, der Hyperdisk erfordert, in derselben Instanzauswahl gruppieren, da die diskConfig nicht beide Maschinentypen erfüllen kann.

  • Unterstützung für lokale SSDs: Wenn Sie lokale SSDs (numLocalSsds > 0) in einer Laufwerksüberschreibungskonfiguration konfigurieren, müssen alle Maschinentypen in der Instanzauswahl lokale SSDs unterstützen.

  • Erforderliche Konfigurationsfelder für die Laufwerksüberschreibung:

    • Wenn Sie diskConfig für eine Instanzauswahl definieren, ist bootDiskType erforderlich.
    • Wenn Sie attachedDiskConfigs definieren, sind sowohl type als auch diskSizeGb für jedes angehängte Laufwerk obligatorisch.

Beispiele für die Konfiguration von Laufwerksüberschreibungen

Im folgenden Beispiel werden die folgenden Konfigurationsoptionen für die Laufwerksüberschreibung für die folgenden Clusterknoten angegeben:

  • Masterknoten: Verwenden Sie Standard-Bootlaufwerke.
  • Primäre Worker: Verwenden Sie benutzerdefinierte Laufwerke pro Instanzauswahl: Beispielsweise verwendet n4-standard-4 hyperdisk-balanced, während n2-standard-4 pd-standard verwendet.
  • Sekundäre Worker: Verwenden Sie eine benutzerdefinierte Basislaufwerkskonfiguration: pd-ssd mit 200 GB, die auf alle Instanzauswahlen angewendet wird.

gcloud YAML

Definieren Sie die Richtlinien für flexible VMs in YAML-Dateien für Master-, primäre Worker- und sekundäre Worker-Knoten:

  1. master-flex-policy.yaml:
    instanceFlexibilityPolicy:
      instanceSelectionList:
      -   machineTypes:
        -   e2-standard-8
        rank: 0
      -   machineTypes:
        -   n2-standard-8
        rank: 1
  2. worker-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: 400
  3. secondary-worker-flex-policy.yaml:
    instanceFlexibilityPolicy:
      instanceSelectionList:
      -   machineTypes:
        -   e2-standard-8
        rank: 0
      -   machineTypes:
        -   n2-standard-8
        rank: 1

Verwenden Sie den Befehl gcloud dataproc clusters create, um die Richtliniendateien zu übergeben:

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

gcloud JSON

Verwenden Sie den Befehl gcloud dataproc clusters create mit Inline-JSON-diskConfig-Spezifikationen in --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

Verwenden Sie das Feld diskConfig in einer instanceFlexibilityPolicy.instanceSelectionList in einer clusters.create-Anfrage der Dataproc API.

Beispiel für einen JSON-Anfragetext:

{
  "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
          }
        ]
      }
    }
  }
}

Flex-VM-Attribute überschreiben

Managed Service for Apache Spark legt Attribute auf Clusterebene fest. Wenn Sie einen Cluster erstellen, der flexible VMs verwendet, können Sie systemgenerierte Attribute für primäre und sekundäre Worker-Flex-VM-Typen überschreiben.

gcloud

Wenn Sie Attribute beim Erstellen eines Clusters überschreiben möchten, verwenden Sie das Flag --properties mit der folgenden Syntax:

--properties="$ROLE:$MACHINE_TYPE:$COMPONENT_PREFIX:$COMPONENT_PROPERTY=$VALUE"
  • ROLE kann entweder primary_worker oder secondary_worker sein.
  • Trennen Sie mehrere Properties durch ein Komma.

Mit dem folgenden gcloud dataproc clusters create-Befehl wird die Anzahl der vCPUs überschrieben, die YARN für NodeManager auf sekundären Workern zuweist. In diesem Beispiel wird der Wert yarn.nodemanager.resource.cpu-vcores in yarn-site.xml für alle sekundären Worker-VMs vom Typ e2-standard-8 und n2-standard-8 auf 6 gesetzt.

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

Wenn Sie Attribute überschreiben möchten, definieren Sie sie im Feld properties des SoftwareConfig-Objekts in Ihrer Anfrage zur Clustererstellung.

Verwenden Sie die folgende Syntax für den Attributschlüssel:

ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY
  • ROLE kann entweder primary_worker oder secondary_worker sein.

Mit dem folgenden SoftwareConfig-Objekt wird die Anzahl der vCPUs überschrieben, die YARN für NodeManager auf sekundären Workern zuweist. In diesem Beispiel wird der Wert yarn.nodemanager.resource.cpu-vcores für alle sekundären Worker-VMs vom Typ e2-standard-8 und n2-standard-8 auf 6 gesetzt.

{
  "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"
  }
}

Nächste Schritte