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 unterstützt die folgenden vordefinierten Compute Engine-Maschinentypen in Clustern:

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

  • Computing-optimierte Maschinentypen, die C2-Maschinentypen umfassen.

  • Speicheroptimierte Maschinentypen, zu denen auch M1- und M2-Maschinentypen gehören.

Benutzerdefinierte Maschinentypen

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

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

gcloud-Befehl

Führen Sie den Befehl gcloud Dataproc-Cluster erstellen mit den folgenden Flags aus, um einen Dataproc-Cluster mit Master- und/oder Worker-Maschinentyp 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
      }
    }
  }
}

Console

Wählen Sie in der Google Cloud Console auf der Seite „Knoten konfigurieren“ der Dataproc-Seite Cluster erstellen die Maschinenfamilie, die Serie und den Typ für die Master- und Worker-Knoten des Clusters aus.

Erweiterter CPU-Speicher

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

Erweiterten Speicher verwenden

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

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

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

Console

Klicken Sie in der Google Cloud Console auf der Dataproc-Seite Cluster erstellen im Abschnitt „Masterknoten“ bzw. „Worker-Knoten“ auf Arbeitsspeicher erweitern.

Weitere Informationen

Siehe VM-Instanz mit einem benutzerdefinierten Maschinentyp erstellen