Unterstützte Maschinentypen

Managed Service for Apache Spark-Cluster basieren auf Compute Engine-Instanzen. Maschinentypen definieren die virtualisierten Hardwareressourcen, die für eine Instanz verfügbar sind. Compute Engine bietet sowohl vordefinierte Maschinentypen als auch benutzerdefinierte Maschinentypen. Managed Service for Apache Spark-Cluster können sowohl vordefinierte als auch benutzerdefinierte Typen für Master- und Worker-Knoten verwenden.

Managed Service for Apache Spark-Cluster unterstützen die folgenden vordefinierten Compute Engine-Maschinentypen (die Verfügbarkeit der Maschinentypen variiert je nach Region):

  • Maschinentypen für allgemeine Zwecke, einschließlich der Maschinentypen N1, N2, N2D, E2, C3, C4, N4 und N4D (Managed Service for Apache Spark unterstützt auch benutzerdefinierte Maschinentypen vom Typ N1, N2, N2D, E2, N4 und N4D).

    Beschränkungen:

    • Der Maschinentyp n1-standard-1 wird für Images ab Version 2.0 nicht unterstützt. Für Images vor Version 2.0 wird der Maschinentyp n1-standard-1 nicht empfohlen. Verwenden Sie stattdessen einen Maschinentyp mit mehr Arbeitsspeicher.
    • Maschinentypen mit gemeinsam genutztem Kern werden nicht unterstützt. Dazu gehören die folgenden nicht unterstützten Maschinentypen:
      • E2: Maschinentypen mit gemeinsam genutztem Kern: e2-micro, e2-small und e2-medium
      • N1: f1-micro- und g1-small-Maschinentypen mit gemeinsam genutztem Kern.
    • Managed Service for Apache Spark wählt hyperdisk-balanced als Bootlaufwerkstyp aus, wenn der Maschinentyp C4, N4 oder N4D ist.
  • Computing-optimierte Maschinentypen, einschließlich C2- und C2D-Maschinentypen.
  • Speicheroptimierte Maschinentypen, zu denen auch M1- und M2-Maschinentypen gehören.
  • ARM-Maschinentypen, einschließlich C4A-Maschinentypen.

Benutzerdefinierte Maschinentypen

Managed Service for Apache Spark unterstützt benutzerdefinierte Maschinentypen der Serien N1, N2, N2D, E2, N4 und N4D.

Benutzerdefinierte Maschinentypen sind ideal für folgende Arbeitslasten:

  • Arbeitslasten, die für die vordefinierten Maschinentypen ungeeignet sind.
  • Arbeitslasten, die mehr Verarbeitungsleistung oder mehr Speicherplatz erfordern, jedoch nicht alle Upgrades benötigen, die vom nächstgrößeren Maschinentyp bereitgestellt werden.

Wenn Sie beispielsweise eine Arbeitslast haben, die mehr Rechenleistung benötigt, als von einer n1-standard-4-Instanz bereitgestellt wird, aber die nächsthöhere Instanz mit n1-standard-8 zu viel Kapazität bietet. Mit benutzerdefinierten Maschinentypen können Sie Managed Service for Apache Spark-Cluster mit Master- und/oder Worker-Knoten im mittleren Bereich mit 6 virtuellen CPUs und 25 GB Arbeitsspeicher erstellen.

Benutzerdefinierten Maschinentyp angeben

Benutzerdefinierte Maschinentypen verwenden eine spezielle machine type-Spezifikation und unterliegen Einschränkungen. Die Spezifikation des benutzerdefinierten Maschinentyps für eine benutzerdefinierte VM mit 6 virtuellen CPUs und 22,5 GB Arbeitsspeicher ist beispielsweise custom-6-23040.

Die Zahlen in der Maschinentypspezifikation entsprechen der Anzahl der virtuellen CPUs (vCPUs) auf der Maschine (6) und der Speichermenge (23040). Die Speichermenge wird berechnet, indem die Speichermenge in Gigabyte mit 1024 multipliziert wird (siehe Arbeitsspeicher in GB oder MB ausdrücken). In diesem Beispiel wird 22, 5 (GB) mit 1.024 multipliziert: 22.5 * 1024 = 23040.

Sie geben den benutzerdefinierten Maschinentyp beim Erstellen eines Clusters an. Sie können den Maschinentyp für Master- oder Worker-Knoten oder für beide festlegen, wenn Sie einen Cluster erstellen. Wenn Sie beide Knoten konfigurieren, kann der Master-Knoten einen benutzerdefinierten Maschinentyp verwenden, der sich vom benutzerdefinierten Maschinentyp des Worker-Knotens unterscheidet. Der Maschinentyp der sekundären Worker verwendet die Einstellungen für primäre Worker und kann nicht separat festgelegt werden (siehe Sekundäre Worker – VMs auf Abruf und nicht auf Abruf verfügbare VMs).

Preise des benutzerdefinierten Maschinentyps

Die Preise benutzerdefinierter Maschinentypen basieren auf den Ressourcen, die auf einer benutzerdefinierten Maschine verwendet werden. Die Preise für Managed Service for Apache Spark werden zu den Kosten für Rechenressourcen hinzugerechnet und basieren auf der Gesamtzahl der virtuellen CPUs (vCPUs), die in einem Cluster verwendet werden.

Cluster mit einem bestimmten Maschinentyp erstellen

Google Cloud Console

  • Öffnen Sie die Seite Cluster erstellen.
  • Wählen Sie in der Worker-Konfiguration die Maschinenfamilie, die Reihe und den Typ aus.
  • Standardmäßig entsprechen die Einstellungen für den Treiberknoten (Masterknoten) den Einstellungen für den primären Worker. Unter Zusätzliche Konfiguration können Sie Treiberknoten bearbeiten, um das Häkchen bei Treiberknoten standardmäßig auf primären Worker festlegen zu entfernen, und dann die Einstellungen für den Treiberknoten festlegen.
  • gcloud CLI-Befehl

    Führen Sie den Befehl gcloud dataproc clusters create mit den folgenden Flags aus, um einen Managed Service for Apache Spark-Cluster mit Master- und/oder Worker-Maschinentypen zu erstellen:

    • Mit dem Flag --master-machine-type machine-type können Sie den vordefinierten oder benutzerdefinierten Maschinentyp festlegen, der von der Master-VM-Instanz in Ihrem Cluster (oder von Masterinstanzen, wenn Sie einen HA-Cluster erstellen) verwendet wird.
    • Mit dem Flag --worker-machine-type custom-machine-type können Sie den vordefinierten oder benutzerdefinierten Maschinentyp festlegen, der von den Worker-VM-Instanzen in Ihrem Cluster verwendet wird.

    Beispiel:

    gcloud dataproc clusters create test-cluster /
        --master-machine-type custom-6-23040 /
        --worker-machine-type custom-6-23040 /
        other args
    
    Sobald der Managed Service for Apache Spark-Cluster gestartet wird, werden die Clusterdetails im Terminalfenster angezeigt. Dieses Beispiel zeigt eine unvollständige Auflistung von Clusterattributen im Terminalfenster:
    ...
    properties:
      distcp:mapreduce.map.java.opts: -Xmx1638m
      distcp:mapreduce.map.memory.mb: '2048'
      distcp:mapreduce.reduce.java.opts: -Xmx4915m
      distcp:mapreduce.reduce.memory.mb: '6144'
      mapred:mapreduce.map.cpu.vcores: '1'
      mapred:mapreduce.map.java.opts: -Xmx1638m
    ...
    

    API

    Um einen Cluster mit benutzerdefinierten Maschinentypen zu erstellen, legen Sie machineTypeUri in der masterConfig- und/oder workerConfig- InstanceGroupConfig in der API-Anfrage cluster.create fest.

    Beispiel:

    POST /v1/projects/my-project-id/regions/is-central1/clusters/
    {
      "projectId": "my-project-id",
      "clusterName": "test-cluster",
      "config": {
        "configBucket": "",
        "gceClusterConfig": {
          "subnetworkUri": "default",
          "zoneUri": "us-central1-a"
        },
        "masterConfig": {
          "numInstances": 1,
          "machineTypeUri": "n1-highmem-4",
          "diskConfig": {
            "bootDiskSizeGb": 500,
            "numLocalSsds": 0
          }
        },
        "workerConfig": {
          "numInstances": 2,
          "machineTypeUri": "n1-highmem-4",
          "diskConfig": {
            "bootDiskSizeGb": 500,
            "numLocalSsds": 0
          }
        }
      }
    }
    

    Cluster mit benutzerdefiniertem Maschinentyp und erweitertem Arbeitsspeicher erstellen

    Managed Service for Apache Spark unterstützt benutzerdefinierte Maschinentypen mit erweitertem Arbeitsspeicher, der über das Limit von 6,5 GB pro vCPU hinausgeht (siehe Preise für erweiterten Arbeitsspeicher).

    Google Cloud Console

  • Öffnen Sie die Seite Cluster erstellen für Managed Service for Apache Spark.
  • Wählen Sie in der Worker-Konfiguration die Maschinenfamilie, die Reihe und den Typ aus.
  • Standardmäßig entsprechen die Einstellungen für den Treiberknoten (Masterknoten) den Einstellungen für den primären Worker. Unter Zusätzliche Konfiguration können Sie Treiberknoten bearbeiten, um das Häkchen bei Treiberknoten standardmäßig auf primären Worker festlegen zu entfernen, und dann die Einstellungen für den Treiberknoten festlegen.
  • gcloud-CLI

    Wenn Sie einen Cluster aus der gcloud-Befehlszeile mit benutzerdefinierten CPUs mit erweitertem Speicher erstellen möchten, fügen Sie einen -ext-Suffix für ‑‑master-machine-type und/oder ‑‑worker-machine-type-Flags hinzu.

    Beispiel

    Im folgenden gcloud-Befehlszeilenbeispiel wird ein Managed Service for Apache Spark-Cluster mit 1 CPU und 50 GB Arbeitsspeicher (50 * 1.024 = 51.200) auf jedem Knoten erstellt:

    gcloud dataproc clusters create test-cluster /
        --master-machine-type custom-1-51200-ext /
        --worker-machine-type custom-1-51200-ext /
        other args
    

    API

    Im folgenden JSON-Beispiel-Snippet <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<> aus einer Dataproc REST API-Anfrage clusters.create werden 1 CPU und 50 GB Arbeitsspeicher (50 * 1024 = 51200) in jedem Knoten angegeben:

    ...
        "masterConfig": {
          "numInstances": 1,
          "machineTypeUri": "custom-1-51200-ext",
        ...
        },
        "workerConfig": {
          "numInstances": 2,
          "machineTypeUri": "custom-1-51200-ext",
         ...
    ...
    

    ARM-Maschinentypen

    Managed Service for Apache Spark unterstützt das Erstellen eines Clusters mit Knoten, die ARM-Maschinentypen wie den C4A-Maschinentyp verwenden.

    Anforderungen und Einschränkungen:

    • Das Managed Service for Apache Spark-Image muss mit dem ARM-Chipsatz kompatibel sein. Die Managed Service for Apache Spark-Images 2.1-ubuntu20-arm, 2.2-ubuntu22-arm und 2.3-ubuntu22-arm (und später mit dem Suffix -arm) sind mit dem ARM-Chipsatz kompatibel. ARM-kompatible Images unterstützen viele optionale und Initialisierungsaktionskomponenten nicht, wie auf den Seiten zu Image-Release-Versionen angegeben.
    • Da für einen Cluster ein Image angegeben werden muss, müssen die Master-, Worker- und sekundären Worker-Knoten einen ARM-Maschinentyp verwenden, der mit dem ausgewählten Managed Service for Apache Spark-ARM-Image kompatibel ist.
    • Funktionen von Managed Service for Apache Spark, die nicht mit ARM-Maschinentypen kompatibel sind, sind nicht verfügbar. Beispielsweise werden lokale SSDs von C4A-Maschinentypen nicht unterstützt.
    • ARM-Images unterstützen nur vorinstallierte Komponenten und eine begrenzte Anzahl optionaler Komponenten. Andere optionale Komponenten und alle Initialisierungsaktionen werden nicht unterstützt.
    • Lightning Engine mit Native Query Execution (NQE) wird auf ARM-Maschinentypen unterstützt, wenn 2.3-ubuntu22-arm-Images verwendet werden.

    Cluster mit einem ARM-Maschinentyp erstellen

    Console

    So erstellen Sie einen Managed Service for Apache Spark-Cluster, der einen ARM-Maschinentyp verwendet:

    1. Öffnen Sie die Seite Cluster erstellen für Managed Service for Apache Spark.
    2. Wählen Sie in der Worker-Konfiguration die Maschinenfamilie, die Reihe und den Typ aus.
    3. Standardmäßig entsprechen die Einstellungen für den Treiberknoten (Masterknoten) den Einstellungen für den primären Worker. Unter Zusätzliche Konfiguration können Sie Treiberknoten bearbeiten, um das Häkchen bei Treiberknoten standardmäßig auf primären Worker festlegen zu entfernen, und dann die Einstellungen für den Treiberknoten festlegen.

    gcloud

    Führen Sie den folgenden gcloud-Befehl lokal in einem Terminalfenster oder in Cloud Shell aus, um einen Managed Service for Apache Spark-Cluster zu erstellen, der einen ARM-Maschinentyp verwendet. In diesem Beispiel werden das Image 2.1-ubuntu20-arm und der ARM-Maschinentyp c4a-standard-4 angegeben.

    gcloud dataproc clusters create cluster-name \
        --region=REGION \
        --image-version=2.1-ubuntu20-arm \
        --master-machine-type=c4a-standard-4 \
        --worker-machine-type=c4a-standard-4
    

    Hinweise:

    • REGION: Die Region, in der sich der Cluster befindet.

    • Weitere Informationen zu zusätzlichen Befehlszeilen-Flags, mit denen Sie Ihren Cluster anpassen können, finden Sie in der Referenzdokumentation zu gcloud dataproc clusters create.

    API

    Mit der folgenden Dataproc REST API-Beispielanfrage [clusters.create](/managed-spark/docs/reference/rest/v1/projects.regions.clusters/create) wird ein Cluster erstellt, der den ARM-Maschinentyp „c4a-standard-4“ verwendet.

    POST /v1/projects/my-project-id/regions/is-central1/clusters/
    {
      "projectId": "my-project-id",
      "clusterName": "sample-cluster",
      "config": {
        "configBucket": "",
        "gceClusterConfig": {
          "subnetworkUri": "default",
          "zoneUri": "us-central1-a"
        },
        "masterConfig": {
          "numInstances": 1,
          **"machineTypeUri": "c4a-standard-4"**,
          "diskConfig": {
            "bootDiskSizeGb": 500,
          }
        },
        "workerConfig": {
          "numInstances": 2,
          **"machineTypeUri": "c4a-standard-4"**,
          "diskConfig": {
            "bootDiskSizeGb": 500,
            "numLocalSsds": 0
          }
        },
        "softwareConfig": {
          "imageVersion": "2.1-ubuntu20-arm"
        }
      }
    }
    

    Nächste Schritte