Benutzerdefinierte Maschinentypen

Google Cloud Dataproc-Cluster basieren auf Google 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. Cloud Dataproc-Cluster können sowohl Standardtypen als auch benutzerdefinierte Typen für Master- und/oder Worker-Knoten verwenden.

Anwendungsfälle für benutzerdefinierte Maschinentypen

Wie in der Dokumentation zu benutzerdefinierten Maschinentypen beschrieben, eignen sich benutzerdefinierte Maschinentypen 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.

Beispiel

Beispiel: Angenommen Sie haben eine Arbeitslast, die mehr Rechenleistung benötigt, als von einer n1-standard-4-Instanz bereitgestellt wird. Die nächstgrößere n1-standard-8-Instanz stellt jedoch zu viel Kapazität bereit. Mit benutzerdefinierten Maschinentypen können Sie Cloud Dataproc-Cluster mit Master- und/oder Worker-Knoten im mittleren Bereich mit sechs virtuellen CPUs und 25 GB Arbeitsspeicher erstellen.

Preise

Die Preise benutzerdefinierter Maschinentypen variieren abhängig von den Ressourcen, die auf einer benutzerdefinierten Maschine verwendet werden. Dataproc-Preise werden den Kosten der verwendeten Compute-Ressourcen hinzugerechnet und basieren auf der Gesamtzahl der virtuellen CPUs, die in einem Cluster verwendet werden.

Benutzerdefinierte Maschinentypen mit Cloud Dataproc verwenden

Derzeit wird das Erstellen von Clustern mit benutzerdefinierten Maschinentypen nur über den Google Cloud SDK-Befehl gcloud dataproc unterstützt.

Überblick über benutzerdefinierte Maschinentypen

Bevor Sie einen Cluster mit benutzerdefinierten Maschinentypen erstellen, lesen Sie den Abschnitt VM-Instanz mit einem benutzerdefinierten Maschinentyp erstellen, um wichtige Aspekte zu verstehen, einschließlich Spezifikationen für benutzerdefinierte Typen und Preise.

Benutzerdefinierte Maschinentypen verwenden eine spezielle machine type-Spezifikation. Beispielsweise lautet die Spezifikation eines benutzerdefinierten Maschinentyps für eine benutzerdefinierte VM mit 6 virtuellen CPUs und 22,5 GB Speicher so:

custom-6-23040

Die Nummern im Maschinentyp entsprechen der Anzahl der virtuellen CPUs in der Maschine (in diesem Fall 6) und dem Speicherplatz in Gigabyte (in diesem Fall 23040). Der Speicherplatz wird berechnet, indem der Speicherplatz in Gigabyte mit 1024 multipliziert wird. In diesem Beispiel multiplizieren wir 22,5 (GB) mit 1024:

22.5 * 1024 = 23040

Unter Beibehaltung der Limits bei Kombinationen aus CPU und Arbeitsspeicher können Sie die obige Syntax verwenden, um den benutzerdefinierten Maschinentyp für Ihre Cluster anzugeben. Beim Erstellen eines Clusters können Sie den Maschinentyp für Master- und/oder Worker-Knoten festlegen. Wenn Sie beide Knoten konfigurieren, kann der Master-Knoten einen benutzerdefinierten Maschinentyp verwenden, der sich vom benutzerdefinierten Maschinentyp des Worker-Knotens unterscheidet. Die Maschinentypeinstellungen für sekundäre Worker (Worker auf Abruf) richten sich nach den Einstellungen für primäre Worker und können nicht separat festgelegt werden (siehe So funktionieren Instanzen auf Abruf mit Cloud Dataproc).

Cloud Dataproc-Cluster mit benutzerdefinierten Maschinentypen erstellen

Befehl "gcloud"

Führen Sie den Befehl gcloud dataproc clusters create mit den folgenden Flags aus, um einen Cloud Dataproc-Cluster mit benutzerdefinierten Master- und/oder Worker-Maschinentypen zu erstellen:
  • Mit dem Flag --master-machine-type custom-machine-type können Sie den benutzerdefinierten Maschinentyp festlegen, der von der Master-VM-Instanz in Ihrem Cluster (oder von Masterinstanzen beim Erstellen eines Clusters mit Hochverfügbarkeit) verwendet wird.
  • Mit dem Flag --worker-machine-type custom-machine-type können Sie den 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 Cloud 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

Zum Erstellen eines Clusters mit benutzerdefinierten Maschinentypen legen Sie machineTypeUri in den InstanceGroupConfig-Feldern masterConfig und/oder workerConfig der API-Anfrage cluster.create fest.

Beispiel:
POST /v1/projects/my-project-id/regions/global/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
      }
    }
  }
}

Konsole

Wenn Sie einen Cloud Dataproc-Cluster über die Seite Cluster erstellen erstellen, klicken Sie im Abschnitt "Maschinentyp" des Steuerfelds "Master Node" (Masterknoten) und/oder "Worker Node" (Worker-Knoten) auf Anpassen und geben die Anzahl der Kerne und den Arbeitsspeicher in GB ein. Die Labels und der Hilfetext der Konsole unterstützen Sie bei der Auswahl gültiger Werte für benutzerdefinierte Maschinentypen.

Der folgende Screenshot zeigt die Werte von Master- und Worker-Knoten zum Erstellen eines Clusters mit 6 virtuellen CPUs und 22,5 GB Arbeitsspeicher in jedem Knoten.
Klicken Sie auf Extend memory (Speicher erweitern), um erweiterte Speicherwerte für die Master- und/oder Worker-Knoten anzugeben.

Erweiterter CPU-Speicher

Cloud 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

Befehl "gcloud"

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

Beispiel

Im folgenden Beispiel für die gcloud-Befehlszeile wird in jedem Knoten ein Cloud 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 Cloud 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",
     ...
...

Konsole

Klicken Sie in der GCP Console auf der Cloud Dataproc-Seite Cluster erstellen im Abschnitt "Master Node" (Masterknoten) bzw. "Worker Node" (Worker-Knoten) auf Extend memory (Speicher erweitern), um den Speicher für den Maschinentyp anzupassen.

Weitere Informationen

Siehe VM-Instanz mit einem benutzerdefinierten Maschinentyp erstellen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Cloud Dataproc-Dokumentation