Managed Service for Apache Spark-Cluster basieren auf Compute Engine Instanzen. Maschinentypen definieren die virtualisierten Hardware ressourcen, die für eine Instanz verfügbar sind. Compute Engine bietet sowohl vordefinierte Maschinentypen als auch benutzerdefinierte Maschinentypen. Managed Service for Apache Spark-Cluster können sowohl für Master- als auch für Worker-Knoten vordefinierte und benutzerdefinierte Typen verwenden.
Managed Service for Apache Spark-Cluster unterstützen die folgenden vordefinierten Compute Engine-Maschinentypen (die Verfügbarkeit von Maschinentypen variiert je nach Region):
- Allgemeine Maschinentypen,
einschließlich der Maschinentypen N1, N2, N2D, E2, C3, C4, N4 und N4D (Managed Service for Apache Spark
unterstützt auch benutzerdefinierte Maschinentypen N1, N2, N2D, E2, N4 und N4D benutzerdefinierte Maschinentypen).
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
- N1: Maschinentypen f1-micro und g1-small mit gemeinsam genutztem Kern
- Managed Service for Apache Spark wählt
hyperdisk-balancedals Bootlaufwerktyp aus, wenn der Maschinentyp C4, N4 oder N4D ist.
- Computing-optimierte Maschinentypen, die C2- und C2D-Maschinentypen umfassen.
- Speicheroptimierte Maschinentypen, zu denen auch M1- und M2-Maschinentypen gehören.
- Arm-Maschinentypen, einschließlich C4A-Maschinentypen.
Benutzerdefinierte Maschinentypen
Managed Service for Apache Spark unterstützt benutzerdefinierte Maschinentypen der Serien N1, N2, N2D, E2, N4 und N4D .
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 n1-standard-8-Instanz mit zu viel Kapazität bietet. Mit benutzerdefinierten Maschinentypen können Sie Managed Service for Apache Spark-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 geben den benutzerdefinierten Maschinentyp beim Erstellen eines Clusters an. 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. Die Preise für Managed Service for Apache Spark werden den Kosten der Rechenressourcen hinzugerechnet und basieren auf der Gesamtzahl der virtuellen CPUs (vCPUs), die in einem Cluster verwendet werden.
Cluster mit einem angegebenen Maschinentyp erstellen
Google Cloud Console
gcloud CLI-Befehl
Führen Sie den
gcloud dataproc clusters create
Befehl mit den folgenden Flags aus, um einen Managed Service for Apache Spark-Cluster mit Master
und/oder Worker-Maschinentypen zu erstellen:
- Mit dem
--master-machine-type machine-typeFlag 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
--worker-machine-type custom-machine-typeFlag 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 ...
API
Um einen Cluster mit benutzerdefinierten Maschinentypen zu erstellen, legen Sie das
machineTypeUri in der masterConfig und/oder workerConfig
InstanceGroupConfig
in der
cluster.create
API-Anfrage 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
}
}
}
}
Cluster mit benutzerdefiniertem Maschinentyp und erweitertem Speicher erstellen
Managed Service for Apache Spark unterstützt benutzerdefinierte Maschinentypen mit erweitertem Speicher über das Limit von 6,5 GB pro vCPU hinaus (siehe Preise für erweiterten Speicher).
Google Cloud Console
gcloud CLI
Wenn Sie einen Cluster über die gcloud-Befehlszeile mit
benutzerdefinierten CPUs mit erweitertem Speicher erstellen, fügen Sie den
‑‑master-machine-type und/oder
‑‑worker-machine-type Flags das -ext Suffix hinzu.
Beispiel
Im folgenden Beispiel für die gcloud-Befehlszeile wird in jedem Knoten ein Managed Service for Apache Spark-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 Dataproc REST API clusters.create -Anfrage 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
Managed Service for Apache Spark unterstützt das Erstellen eines Clusters mit Knoten, die Arm-Maschinentypen wie den C4A-Maschinentyp verwenden.
Anforderungen und Einschränkungen:
- Das Managed Service for Apache Spark-Image muss mit dem Arm-Chipsatz kompatibel sein.
Die Managed Service for Apache Spark-Images
2.1-ubuntu20-arm,2.2-ubuntu22-arm, und2.3-ubuntu22-arm(und spätere Images mit dem Suffix-arm) sind mit dem Arm-Chipsatz kompatibel. Arm-kompatible Images unterstützen viele optionale Komponenten und Komponenten für Initialisierungsaktionen nicht, wie auf den Seiten zur Image-Release-Versionangegeben. - 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 Managed Service for Apache Spark-Arm-Image kompatibel ist.
- Managed Service for Apache Spark-Funktionen, die nicht mit Arm-Maschinentypen kompatibel sind, sind nicht verfügbar. Lokale SSDs werden beispielsweise von C4A-Maschinentypen nicht unterstützt.
- Arm-Images unterstützen nur vorinstallierte Komponenten und eine begrenzte Anzahl optionaler Komponenten. Andere optionale Komponenten und alle Initialisierungsaktionen werden nicht unterstützt.
Cluster mit einem Arm-Maschinentyp erstellen
Console
So erstellen Sie einen Managed Service for Apache Spark-Cluster, der einen Arm-Maschinentyp verwendet:
- Öffnen Sie die Seite Managed Service for Apache Spark Cluster erstellen.
- Wählen Sie unter Worker-Konfiguration Maschinenfamilie, Serie, und Typ aus.
- Standardmäßig sind die Einstellungen für den Treiberknoten (Master) mit den Einstellungen für den primären Worker identisch. Unter Zusätzliche Konfiguration können Sie Treiberknoten bearbeiten, um das Häkchen aus dem Kästchen Treiberknoten standardmäßig auf primären Worker festlegen zu entfernen und dann die Einstellungen für den Treiberknoten anzugeben.
gcloud
Führen Sie den folgenden gcloud Befehl lokal in einem Terminalfenster oder in
Cloud Shell aus, um einen Managed Service for Apache Spark-Cluster zu erstellen, der einen Arm
Maschinentyp verwendet. In diesem Beispiel werden das Image 2.1-ubuntu20-arm und der Arm-Maschinentyp c4a-standard-4 angegeben.
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 befindet.
Weitere Informationen zu zusätzlichen Befehlszeilen-Flags, mit denen Sie Ihren Cluster anpassen können, finden Sie in der gcloud dataproc clusters create Referenzdokumentation.
API
Mit der folgenden Beispielanfrage der Dataproc REST API
clusters.create
wird ein Cluster erstellt, der den Arm-Maschinentyp c4a-standard-4 verwendet.
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
- Weitere Informationen zu Arm-VMs in Compute
- VM mit einem benutzerdefinierten Maschinentyp erstellen
- Erfahren Sie, wie Sie eine Compute Engine-Instanz erstellen und starten.