VM-Typen mit flexiblen VMs priorisieren

Flexible VMs ist eine Funktion von Managed Service for Apache Spark, mit der 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 von flexiblen VMs

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

Die Lösung: Die Funktion für flexible VMs im Managed Service for Apache Spark hilft Ihnen, Ihren Antrag auf Clustererstellung zu erfüllen, indem Master-, primäre und sekundäre Worker-VM-Typen aus Ihren sortierten VM-Listen ausgewählt und dann in der von Ihnen angegebenen Clusterregion nach Zonen mit Verfügbarkeit der aufgeführten VM-Typen gesucht wird.

Beschränkungen

  • Cluster, die flexible VMs verwenden, können nicht beendet werden.
  • Masterknoten in Clustern mit Hochverfügbarkeit können keine flexiblen VMs verwenden, Worker-Knoten in HA-Clustern 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 Master-Knoten 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 Computing-Skalierung zu skalieren, ohne den Speicher zu skalieren. Der standardmäßige flexible VM-Typ für sekundäre Worker ist eine Spot-VM, die auf Abruf ist.

Nutzung

  • Flexible VMs sind im Managed Service for Apache Spark in den imageversions 2.0.74+, 2.1.76+, 2.2.42+ und höher verfügbar.
    • Ab der Image-Version 3.0 wird bei der Erstellung eines Clusters ohne Angabe eines Maschinentyps für einen Clusterknoten von Managed Service for Apache Spark der Knoten mit einer sortierten Liste flexibler VM-Maschinentypen angegeben, 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 Listen mit VM-Typen angeben, wobei jede Liste bis zu zehn VM-Typen enthalten kann.

  • Sie können Flexible VMs in Workflowvorlagen einfügen, um die Ausfallsicherheit bei Ressourcenverfügbarkeit zu erhöhen, wenn Cluster aus der Vorlage erstellt werden.

    Empfehlung:Aktivieren Sie die automatische Zonenzuweisung 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 für einen Clusterknoten ein Laufwerkstyp verwendet werden. Sie können Laufwerkü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 zum Erstellen eines Clusters 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 von CPUs.

  • Für die Bereitstellung flexibler VMs gelten Google Cloud Kontingente für Managed Service for Apache Spark.

  • 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 Listen mit VM-Typen angeben, wobei jede Liste bis zu zehn VM-Typen enthalten kann. 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 von CPUs 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, 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 VMs mit Rang 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 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 Zonenzuweisung 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 Ihrem Standard-gcloud config list angegeben ist.

API

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

Beispiel: Im folgenden JSON-Snippet aus einem clusters.create-Anfragetext werden die Maschinentypen „Master“ (masterConfig), „Primary Worker“ (workerConfig) und „Secondary 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 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 in Ihrer flexiblen VM-Spezifikation Laufwerkü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 für die Laufwerksüberschreibung

Konfigurationsoptionen für die Laufwerksüberschreibung:

  • 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 der Laufwerksüberschreibung:

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

  • Festplattenkonfigurationen 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-Überschreibung enthalten. Wenn Sie auch eine Basis-Festplattenkonfiguration für den Knoten definieren, tritt ein Validierungsfehler auf.

  • Kompatibilität des Maschinentyps:Alle Maschinentypen in einem einzelnen InstanceSelection müssen mit dem angegebenen diskConfig kompatibel sein. Sie können beispielsweise keinen e2-standard-4-Maschinentyp, der keine Hyperdisk unterstützt, mit einem n4-standard-4-Maschinentyp, für den eine Hyperdisk erforderlich ist, in derselben Instanzauswahl gruppieren, da die diskConfig nicht beide Maschinentypen unterstützen kann.

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

  • Pflichtfelder für die Konfiguration der Festplattenü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 erforderlich.

Beispiele für die Konfiguration der Laufwerksüberschreibung

Im folgenden Beispiel werden die folgenden Konfigurationsoptionen für die Überschreibung von Datenträgern für die folgenden Clusterknoten angegeben:

  • Masterknoten:Verwenden Sie Standard-Bootlaufwerke.
  • Primäre Worker: Verwenden Sie benutzerdefinierte Laufwerke pro Instanzauswahl, z. B. n4-standard-4 verwendet hyperdisk-balanced, während n2-standard-4 pd-standard verwendet.
  • Sekundäre Worker:Verwenden Sie eine benutzerdefinierte Basisdatenträgerkonfiguration: 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 einem 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
          }
        ]
      }
    }
  }
}

Flex-VM-Attribute überschreiben

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

gcloud

Wenn Sie beim Erstellen eines Clusters Eigenschaften ü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 Eigenschaften 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 festgelegt.

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 zum Erstellen des Clusters.

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

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 festgelegt.

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