In diesem Dokument wird beschrieben, wie Sie einen Managed Service for Apache Spark-Cluster mit mehreren Zonen erstellen. In einem Multi-Zonen-Cluster stellt Managed Service for Apache Spark die Compute Engine-VM-Instanzen des Clusters in mehreren Zonen in einer einzelnen Region bereit und verteilt sie, anstatt alle Clusterknoten in einer Zone zu platzieren.
Verwenden Sie einen Multi-Zonen-Cluster, wenn Sie einen großen Cluster erstellen oder skalieren müssen und die Kapazität einer einzelnen Zone möglicherweise nicht ausreicht, um Ihre Anfrage zu erfüllen.
So funktionieren Mehrzonencluster
Wenn Sie einen Cluster mit mehreren Zonen erstellen, stellt Managed Service for Apache Spark die Clusterknoten so bereit:
- Masterknoten: Managed Service for Apache Spark platziert die Masterinstanzgruppe mithilfe der automatischen Zonenplatzierung in einer einzelnen Zone in der Clusterregion.
- Worker-Knoten: Managed Service for Apache Spark konfiguriert die primären und sekundären Worker-Gruppen als regionale verwaltete Instanzgruppen (MIGs). Diese Gruppen stellen Worker-VMs in allen geeigneten Zonen in der Region mit verfügbarer Kapazität bereit und verteilen sie.
Da Managed Service for Apache Spark Worker-VM-Anfragen auf mehrere Zonen verteilt, ist es weniger wahrscheinlich, dass Kapazitätsbeschränkungen in einer einzelnen Zone Ihre Anfrage blockieren. So können Sie ZONE_RESOURCE_POOL_EXHAUSTED-Fehler vermeiden, wenn Sie große Cluster, Cluster mit Spot-VMs oder sekundären Workern auf Abruf oder Cluster mit stark nachgefragten Maschinentypen erstellen oder skalieren.
Anforderungen und Einschränkungen
Wenn Sie einen Cluster mit mehreren Zonen erstellen möchten, müssen Sie eine der folgenden Image-Versionen oder eine neuere Version im selben Image-Versions-Track verwenden:
| Bildversionen-Track | Unterstützte Mindestversion des Images |
|---|---|
| 2.2.x | 2.2.88 |
| 2.3.x | 2.3.37 |
| 3.0.x | 3.0.3 |
Für multizonale Cluster gelten die folgenden Einschränkungen:
- Sie können in derselben Anfrage zur Clustererstellung nicht sowohl eine Konfiguration mit einer einzelnen Zone als auch eine Konfiguration mit mehreren Zonen angeben.
- Sie können keinen Multi-Zonen-Cluster mit mehr als 1.000 primären Workern in der ersten Anfrage zur Clustererstellung erstellen. Wenn Ihre Arbeitslast mehr als 1.000 primäre Worker erfordert, erstellen Sie den Cluster mit maximal 1.000 primären Workern und skalieren Sie den Cluster nach der Erstellung.
Kosten für Netzwerk-Datenübertragungen
In einem Cluster mit einer einzelnen Zone befinden sich alle VMs in derselben Zone. Netzwerkverkehr, der interne IP-Adressen zwischen VMs in derselben Zone verwendet, wird kostenlos angeboten. In einem Cluster mit mehreren Zonen können sich Master- und Worker-VMs in verschiedenen Zonen derselben Region befinden. Für den Netzwerkverkehr zwischen VMs in verschiedenen Zonen in derselben Region fallen Gebühren für die zonenübergreifende Datenübertragung an.
Preisinformationen finden Sie unter Preise für die VM-VM-Datenübertragung in Google Cloud.
Mehrzonencluster erstellen
Sie können einen Cluster mit mehreren Zonen mit der Google Cloud CLI oder der Dataproc API erstellen.
gcloud
Führen Sie den Befehl gcloud dataproc clusters create mit dem Flag --multizone aus, um einen Cluster mit mehreren Zonen zu erstellen. Geben Sie das Flag --zone nicht an.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--multizone \
--image-version=IMAGE_VERSION \
--master-machine-type=MASTER_MACHINE_TYPE \
--worker-machine-type=WORKER_MACHINE_TYPE \
--num-workers=NUM_WORKERS
Ersetzen Sie Folgendes:
- CLUSTER_NAME ist der Name des Clusters.
- REGION: eine verfügbare Compute Engine-Region für den Cluster, z. B.
us-central1. - IMAGE_VERSION: eine Image-Version, die Cluster mit mehreren Zonen unterstützt, z. B.
2.3.37-debian12. Weitere Informationen finden Sie unter Anforderungen und Einschränkungen. - MASTER_MACHINE_TYPE: der Compute Engine-Maschinentyp des Masterknotens, z. B.
n2-standard-4. - WORKER_MACHINE_TYPE: der Compute Engine-Maschinentyp der primären Worker-Knoten, z. B.
n2-standard-4. - NUM_WORKERS: die Anzahl der primären Worker im Cluster. Dieser Wert darf nicht größer als
1000sein.
REST
Senden Sie eine clusters.create-Anfrage, um einen Multi-Zonen-Cluster zu erstellen. Lassen Sie im gceClusterConfig-Objekt der Anfrage das Feld zoneUri leer und setzen Sie das Feld multiZoneConfig.targetShape auf ANY.
HTTP-Methode und URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters
JSON-Text der Anfrage:
{
"projectId": "PROJECT_ID",
"clusterName": "CLUSTER_NAME",
"config": {
"gceClusterConfig": {
"multiZoneConfig": {
"targetShape": "ANY"
}
},
"softwareConfig": {
"imageVersion": "IMAGE_VERSION"
},
"masterConfig": {
"numInstances": 1,
"machineTypeUri": "MASTER_MACHINE_TYPE"
},
"workerConfig": {
"numInstances": NUM_WORKERS,
"machineTypeUri": "WORKER_MACHINE_TYPE"
}
}
}
Ersetzen Sie Folgendes:
- PROJECT_ID: Projekt-ID in Google Cloud .
- REGION: eine verfügbare Compute Engine-Region für den Cluster, z. B.
us-central1. - CLUSTER_NAME ist der Name des Clusters.
- IMAGE_VERSION: Eine Image-Version, die Cluster mit mehreren Zonen unterstützt, z. B.
2.3.37-debian12. Weitere Informationen finden Sie unter Anforderungen und Einschränkungen. - MASTER_MACHINE_TYPE: der Compute Engine-Maschinentyp des Masterknotens, z. B.
n2-standard-4. - NUM_WORKERS: die Anzahl der primären Worker im Cluster. Dieser Wert darf nicht größer als
1000sein. - WORKER_MACHINE_TYPE: der Compute Engine-Maschinentyp der primären Worker-Knoten, z. B.
n2-standard-4.