Unterstützte Maschinentypen

Dataproc-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. Dataproc-Cluster können sowohl für Master- als auch für Worker-Knoten vordefinierte und benutzerdefinierte Typen verwenden.

Dataproc-Cluster unterstützen die folgenden vordefinierten Compute Engine-Maschinentypen (die Verfügbarkeit von Maschinentypen variiert je nach Region):

  • Allgemeine Maschinentypen, einschließlich N1-, N2-, N2D-, E2-, C3-, C4- und N4-Maschinentypen (Dataproc unterstützt auch benutzerdefinierte Maschinentypen N1, N2, N2D, E2, C3, C4 und N4).

    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 und
      • N1: f1-micro- und g1-small-Maschinentypen mit gemeinsam genutztem Kern.
    • Dataproc wählt hyperdisk-balanced als Bootlaufwerktyp aus, wenn der Maschinentyp C4 oder N4 ist.
  • Computing-optimierte Maschinentypen, zu denen auch die Maschinentypen C2 und C2D gehören.
  • Speicheroptimierte Maschinentypen, zu denen auch M1- und M2-Maschinentypen gehören.
  • ARM-Maschinentypen, zu denen auch C4A-Maschinentypen gehören.

Benutzerdefinierte Maschinentypen

Dataproc unterstützt benutzerdefinierte Maschinentypen der N1-Serie.

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 Instanz mit n1-standard-8 zu viel Kapazität bietet. Mit benutzerdefinierten Maschinentypen können Sie Dataproc-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 verwenden die obige Syntax, um den benutzerdefinierten Maschinentyp mit Ihren Clustern anzugeben. 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. Dataproc-Preise werden den Kosten der Rechenressourcen hinzugerechnet und basieren auf der Gesamtzahl der virtuellen CPUs (vCPUs), die in einem Cluster verwendet werden.

Einen Dataproc-Cluster mit einem angegebenen Maschinentyp erstellen

Console

Wählen Sie in der Google Cloud Console im Bereich Knoten konfigurieren der Dataproc-Seite Cluster erstellen die Maschinenfamilie, die -serie und -typ für die Haupt- und Worker-Knoten des Clusters aus.

gcloud-Befehl

Führen Sie den Befehl gcloud dataproc clusters create mit den folgenden Flags aus, um einen Dataproc-Cluster mit benutzerdefinierten 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 verwendet wird (oder Masterinstanzen, wenn Sie einen Hochverfügbarkeitscluster erstellen).
  • 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
Nach dem Start des Dataproc-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
...

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

Dataproc-Cluster mit benutzerdefiniertem Maschinentyp und erweitertem Arbeitsspeicher erstellen

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

Console

Klicken Sie in der Google Cloud Console auf der Dataproc-Seite Cluster erstellen im Bereich Knoten konfigurieren im Abschnitt „Master Node“ (Masterknoten) bzw. „Worker Node“ (Worker-Knoten) auf Speicher erweitern, um den Speicher für den Maschinentyp anzupassen.

gcloud-Befehl

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 Beispiel für die gcloud-Befehlszeile wird in jedem Knoten ein Dataproc-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 clusters.create-Anfrage der Dataproc REST API 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

Dataproc unterstützt das Erstellen eines Clusters mit Knoten, die ARM-Maschinentypen wie den C4A-Maschinentyp verwenden.

Anforderungen und Einschränkungen:

  • Das Dataproc-Image muss mit dem ARM-Chipsatz kompatibel sein. Derzeit ist nur das Dataproc-Image 2.1-ubuntu20-arm mit dem ARM-Chipsatz kompatibel. Dieses Image unterstützt nicht viele optionale Komponenten und Komponenten für Initialisierungsaktionen (siehe Releaseversionen 2.1.x).
  • 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 Dataproc-ARM-Image kompatibel ist.
  • Dataproc-Funktionen, die nicht mit ARM-Maschinentypen kompatibel sind, sind nicht verfügbar. Lokale SSDs werden beispielsweise von C4A-Maschinentypen nicht unterstützt.

Dataproc-Cluster mit einem ARM-Maschinentyp erstellen

Console

Derzeit wird das Erstellen eines Dataproc-Clusters mit ARM-Maschinentyp in der Google Cloud Console nicht unterstützt.

gcloud

Führen Sie zum Erstellen eines Dataproc-Clusters, der den ARM-c4a-standard-4-Maschinentyp verwendet, den folgenden gcloud-Befehl lokal in einem Terminalfenster oder in Cloud Shell aus.

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 befinden wird.

  • ARM-Images sind ab 2.1.18-ubuntu20-arm verfügbar.

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

  • *-arm images unterstützt nur die installierten Komponenten und die folgenden optionalen Komponenten, die auf der Seite Releaseversionen 2.1.x aufgeführt sind. Die verbleibenden optionalen Komponenten für Version 2.1 und alle auf dieser Seite aufgeführten Initialisierungsaktionen werden nicht unterstützt:

    • Apache Hive WebHCat
    • Docker
    • Zookeeper (in HA-Clustern installiert; optionale Komponente in Nicht-HA-Clustern)

API

Im folgenden Beispiel für eine clusters.create-Anfrage der Dataproc REST API wird ein Cluster mit ARM-Maschinentyp erstellt.

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