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 der Typen N1, N2, N2D, E2, C3, C4 und N4.

    Beschränkungen:

    • Der Maschinentyp „n1-standard-1“ wird für Images ab 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
    • Dataproc wählt hyperdisk-balanced als Bootlaufwerktyp aus, wenn der Maschinentyp C3, C4 oder N4 ist.
  • Computing-optimierte Maschinentypen, zu denen C2- und C2D-Maschinentypen gehören.
  • Speicheroptimierte Maschinentypen, zu denen auch M1- und M2-Maschinentypen gehören.
  • ARM-Maschinentypen, einschließlich C4A-Maschinentypen.

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
Nachdem der Dataproc-Cluster gestartet wurde, werden im Terminalfenster Clusterdetails 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 mit 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 „Masterknoten“ und/oder „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 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: <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<>

...
    "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 verwenden, z. B. den Maschinentyp C4A.

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-CHIPSET 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 ARM-Maschinentyp erstellen

Console

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

gcloud

Wenn Sie einen Dataproc-Cluster mit dem ARM-c4a-standard-4-Rechnertyp erstellen möchten, führen Sie 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 übrigen optionalen Komponenten von 2.1 und alle Initialisierungsaktionen auf dieser Seite werden nicht unterstützt:

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

API

Mit der folgenden Beispielanfrage der Dataproc REST API clusters.create 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"
    }
  }
}

Weitere Informationen