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
... 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
- Weitere Informationen finden Sie unter Arm-VMs in Compute.
- Weitere Informationen finden Sie unter VM mit benutzerdefiniertem Maschinentyp erstellen.
- Weitere Informationen finden Sie unter Compute Engine-Instanz erstellen und starten.