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 Managed Service for Apache Spark Master-, primäre und sekundäre Worker-Knoten angeben können, wenn Sie einen Managed Service for Apache Spark -Cluster erstellen.

Warum flexible VMs verwenden?

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

Die Lösung: Mit dem Feature „Flexible VMs“ von Managed Service for Apache Spark kann Ihre Anfrage zum Erstellen eines Clusters erfolgreich ausgeführt werden. Dazu werden Master-, primäre und sekundäre Worker-VM-Typen aus Ihren sortierten VM-Listen ausgewählt und dann in der angegebenen Clusterregion nach Zonen 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, aber Worker-Knoten von HA-Clustern können flexible VMs verwenden.

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. Sie können sekundäre Worker verwenden, um die Rechenleistung zu skalieren, ohne den Speicher zu skalieren. Der standardmäßige sekundäre Worker-Typ für flexible VMs ist eine Spot-VM, die ein Typ auf Abruf ist.

Nutzung

  • Flexible VMs sind in Managed Service for Apache Spark in den Imageversionen Managed Service for Apache Spark 2.0.74+, 2.1.76+, 2.2.42+ und höher imageversions.
    • Ab Imageversion 3.0 wird beim Erstellen eines Clusters ohne Angabe eines Maschinentyps für einen Clusterknoten der Knoten von Managed Service for Apache Spark mit einer sortierten Liste flexibler VM-Maschinentypen angegeben, z. B. eine sortierte Liste von Maschinentypen der Serien N4, N2 und E2, wobei die Liste für die Ressourcenverfügbarkeit optimiert ist.
  • Sie können bis zu fünf sortierte VM-Typ-Listen mit jeweils bis zu zehn VM-Typen angeben.

  • Sie können flexible VMs in Workflow-Vorlagen einfügen, um die Ausfallsicherheit bei Ressourcenverfügbarkeit zu verbessern, wenn Cluster aus der Vorlage erstellt werden.

    Empfehlung:Aktivieren Sie die automatische Zonenauswahl von 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. Mit Laufwerks überschreibungen können Sie verschiedene Laufwerkstypen für verschiedene Maschinentypen angeben, die für einen flexiblen VM-Clusterknoten angegeben wurden.

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

  • Wenn Ihre Anfrage zum Erstellen eines Clusters eine Autoscaling Richtlinie, können flexible VMs aus verschiedenen VM-Familien stammen, müssen aber dieselbe Menge an Arbeitsspeicher und dieselbe Anzahl an 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 Bereitstellung flexibler VMs an.

  • Wenn Sie einen Cluster aktualisieren, der mit flexiblen VMs erstellt wurde, wählt Managed Service for Apache Spark Worker aus den flexiblen VM-Listen 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-Typ-Listen mit jeweils bis zu zehn VM-Typen 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 Anzahl an CPUs werden gleich behandelt.

Sie können flexible VMs anfordern, wenn Sie einen Managed Service for Apache Spark Cluster über die Google Cloud Console, die Google Cloud CLI, die Dataproc API, 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 sortierte VMs an.

gcloud

Verwenden Sie den gcloud dataproc clusters create Befehl mit master-instance-selection, worker-instance-selection und secondary-worker-instance-selection Flags, um sortierte 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:

  • Stellen Sie e2-standard-8-VMs bereit, falls verfügbar (Rang 0). Wenn e2-standard-8-Maschinen nicht verfügbar sind, stellen Sie n2-standard-8-VMs bereit (Rang 1).

Da der sekundäre Worker-Typ 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 Zonenauswahl aktiviert. Dadurch kann Managed Service for Apache Spark eine Zone auswählen, in der die angeforderten VM-Typen verfügbar sind. Dieser Flagwert überschreibt jede Zonenauswahl, die in Ihrer Standardkonfiguration gcloud config list angegeben ist.

API

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

Beispiel: Das folgende JSON-Snippet aus dem clusters.create Anfragetext gibt Maschinentypen für Master (masterConfig), primäre Worker (workerConfig) und sekundäre Worker (secondaryWorkerConfig) mit den Rängen 0 und 1 an.

{
  "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 DataprocCreateClusterOperator Operator 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 Terraform Anbieter-Referenzdokumentation.

Verwenden Sie die google_dataproc_cluster Ressource mit instance_flexibility_policy Blöcken, um sortierte flexible VM-Listen 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 Laufwerksüberschreibungen für jeden Maschinentyp (Instanzauswahl) in Ihrer flexiblen VM-Spezifikation angeben. So können Sie Bootlaufwerke anpassen, lokale SSDs überschreiben und zusätzliche Laufwerke für bestimmte Maschinentypen anhängen.

Optionen und Regeln für Laufwerksüberschreibungen

Konfigurationsoptionen für Laufwerksüberschreibungen:

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

Konfigurationsregeln für 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 Basis-Laufwerkskonfiguration 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, muss jede Instanzauswahl 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 in einer einzelnen InstanceSelection müssen mit der angegebenen diskConfig kompatibel sein. Sie können beispielsweise keinen e2-standard-4-Maschinentyp, der keine Hyperdisk unterstützt, mit einem n4-standard-4-Maschinentyp gruppieren, der eine Hyperdisk erfordert, da die diskConfig nicht beide Maschinentypen erfüllen kann.

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

  • Pflichtfelder für die Konfiguration von Laufwerksüberschreibungen :

    • 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 erforderlich.

Beispiele für die Konfiguration von Laufwerksüberschreibungen

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

  • Masterknoten:Standard-Bootlaufwerke verwenden.
  • Primäre Worker:Angepasste Laufwerke pro Instanzauswahl verwenden: n4-standard-4 verwendet beispielsweise hyperdisk-balanced, während n2-standard-4 pd-standard verwendet.
  • Sekundäre Worker:Eine benutzerdefinierte Basis-Laufwerkskonfiguration verwenden: pd-ssd mit 200 GB, die auf alle Instanzauswahlen angewendet wird.

gcloud YAML

Definieren Sie die flexiblen VM-Richtlinien 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

Übergeben Sie die Richtliniendateien mit dem gcloud dataproc clusters create Befehl:

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 gcloud dataproc clusters create Befehl mit Inline-JSON-diskConfigSpezifikationen 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 Dataproc API-Anfrage clusters.create.

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

Attribute flexibler VMs ü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-VM-Typen überschreiben.

gcloud

Verwenden Sie das Flag --properties mit der folgenden Syntax, um Attribute beim Erstellen eines Clusters zu überschreiben:

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

Der folgende Befehl gcloud dataproc clusters create überschreibt die Anzahl der vCPUs, 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 properties Feld des SoftwareConfig Objekts in Ihrer Anfrage zum Erstellen eines Clusters.

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.

Das folgende SoftwareConfig-Objekt überschreibt die Anzahl der vCPUs, 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