Unterstützte Maschinentypen

Managed Service for Apache Spark-Cluster basieren auf Compute Engine Instanzen. Maschinentypen definieren die virtualisierten Hardware ressourcen, 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 für Master- als auch für Worker-Knoten vordefinierte und benutzerdefinierte Typen verwenden.

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

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

    Beschränkungen :

    • Der Maschinentyp „n1-standard-1“ wird für Images ab Version 2.0 nicht unterstützt. Der Maschinentyp „n1-standard-1“ wird für Images vor Version 2.0 nicht empfohlen. Verwenden Sie stattdessen einen Maschinentyp mit mehr Arbeitsspeicher.
    • Maschinentypen mit gemeinsam genutztem Kern werden nicht unterstützt. Dies beinhaltet die folgenden nicht unterstützten Maschinentypen:
      • E2: Maschinentypen e2-micro, e2-small und e2-medium mit gemeinsam genutztem Kern
      • N1: Maschinentypen f1-micro und g1-small mit gemeinsam genutztem Kern
    • Managed Service for Apache Spark wählt hyperdisk-balanced als Bootlaufwerktyp aus, wenn der Maschinentyp C4, N4 oder N4D ist.
  • Computing-optimierte Maschinentypen, die C2- und C2D-Maschinentypen umfassen.
  • 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 eignen sich insbesondere 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 n1-standard-8-Instanz mit 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 sechs 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. Beim Erstellen eines Clusters können Sie den Maschinentyp entweder für Master- oder Worker-Knoten oder für beide festlegen. 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 den Kosten der Rechenressourcen hinzugerechnet und basieren auf der Gesamtzahl der virtuellen CPUs (vCPUs), die in einem Cluster verwendet werden.

Cluster mit einem angegebenen Maschinentyp erstellen

Google Cloud Console

  • Öffnen Sie die Seite Cluster erstellen.
  • Wählen Sie unter Worker-Konfiguration Maschinenfamilie, Serie, und Typ aus.
  • Standardmäßig sind die Einstellungen für den Treiberknoten(Master) mit den Einstellungen für den primären Worker identisch. Unter Zusätzliche Konfiguration können Sie Treiberknoten bearbeiten, um das Häkchen aus dem Kästchen Treiberknoten standardmäßig auf primären Worker festlegen zu entfernen und dann die Einstellungen für den Treiberknoten anzugeben.
  • gcloud CLI-Befehl

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

    • Mit dem --master-machine-type machine-type Flag können Sie den vordefinierten oder benutzerdefinierten Maschinentyp festlegen, der von der Master VM-Instanz in Ihrem Cluster verwendet wird (oder Masterinstanzen, wenn Sie einen Hochverfügbarkeitscluster erstellen).
    • Mit dem --worker-machine-type custom-machine-type Flag 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
    
    Nach dem Start des Managed Service for Apache Spark-Clusters 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 das machineTypeUri in der masterConfig und/oder workerConfig InstanceGroupConfig in der cluster.create API-Anfrage 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 Speicher erstellen

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

    Google Cloud Console

  • Öffnen Sie die Seite Managed Service for Apache Spark Cluster erstellen.
  • Wählen Sie unter Worker-Konfiguration Maschinenfamilie, Serie, und Typ aus.
  • Standardmäßig sind die Einstellungen für den Treiberknoten (Master) mit den Einstellungen für den primären Worker identisch. Unter Zusätzliche Konfiguration können Sie Treiberknoten bearbeiten, um das Häkchen aus dem Kästchen Treiberknoten standardmäßig auf primären Worker festlegen zu entfernen und dann die Einstellungen für den Treiberknoten anzugeben.
  • gcloud CLI

    Wenn Sie einen Cluster über die gcloud-Befehlszeile mit benutzerdefinierten CPUs mit erweitertem Speicher erstellen, fügen Sie den ‑‑master-machine-type und/oder ‑‑worker-machine-type Flags das -ext Suffix hinzu.

    Beispiel

    Im folgenden Beispiel für die gcloud-Befehlszeile wird in jedem Knoten ein Managed Service for Apache Spark-Cluster mit 1 CPU und 50 GB Arbeitsspeicher (50 * 1024 = 51200) 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 Beispiel für ein <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<> JSON-Snippet aus einer Dataproc REST API clusters.create -Anfrage 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ätere Images mit dem Suffix -arm) sind mit dem Arm-Chipsatz kompatibel. Arm-kompatible Images unterstützen viele optionale Komponenten und Komponenten für Initialisierungsaktionen nicht, wie auf den Seiten zur Image-Release-Versionangegeben.
    • 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.
    • Managed Service for Apache Spark-Funktionen, die nicht mit Arm-Maschinentypen kompatibel sind, sind nicht verfügbar. Lokale SSDs werden beispielsweise 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.

    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 Managed Service for Apache Spark Cluster erstellen.
    2. Wählen Sie unter Worker-Konfiguration Maschinenfamilie, Serie, und Typ aus.
    3. Standardmäßig sind die Einstellungen für den Treiberknoten (Master) mit den Einstellungen für den primären Worker identisch. Unter Zusätzliche Konfiguration können Sie Treiberknoten bearbeiten, um das Häkchen aus dem Kästchen Treiberknoten standardmäßig auf primären Worker festlegen zu entfernen und dann die Einstellungen für den Treiberknoten anzugeben.

    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 gcloud dataproc clusters create Referenzdokumentation.

    API

    Mit der folgenden Beispielanfrage der Dataproc REST API 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