In diesem Dokument wird beschrieben, wie Sie einen Managed Service for Apache Spark-Cluster im HO-Modus (High Obtainability) erstellen. Der Modus „Hohe Verfügbarkeit“ verbessert die Wahrscheinlichkeit, dass Cluster-VMs in Zeiten hoher Nachfrage oder Ressourcenbeschränkungen erfolgreich bereitgestellt werden. Dazu kann Managed Service for Apache Spark aus einer Reihe kompatibler Maschinentypen auswählen, anstatt beim Erstellen eines Clusters einen festen Maschinentyp zu erfordern.
Verwenden Sie den Modus „Hohe Verfügbarkeit“, um Cluster mit Anforderungen an die Rechenleistung für allgemeine Zwecke zu erstellen. So können Sie Fehler bei der Clustererstellung und -skalierung aufgrund von nicht verfügbaren VMs vermeiden.
Funktionsweise des Modus „Hohe Verfügbarkeit“
In Standardanfragen zur Clustererstellung geben Sie bestimmte Maschinentypen (z. B. n2-standard-4) für Clusterknoten an. Wenn dieser bestimmte Maschinentyp in einer Zone nicht verfügbar ist, schlägt die Erstellungsanfrage fehl.
Im Modus „Hohe Verfügbarkeit“ geben Sie flexible Ressourcenanforderungen für Master-, primäre Worker- und sekundäre Worker-Knoten anstelle von festen Maschinentypen an:
- Anzahl der vCPU-Kerne: Sie fordern eine Zielanzahl von vCPUs pro VM-Instanz an (2, 4, 8, 16 oder 32 Kerne).
Hardwareklasse: Sie geben das Leistungs- und Speicherprofil an:
STANDARD: Bietet eine ausgewogene Konfiguration mit etwa 4 GB Arbeitsspeicher pro vCPU und Standardstufen für nichtflüchtigen Speicher. Aktuelle Kandidaten für Maschinentypen sindn4-standard,n4d-standard,n2-standardundn2d-standard(Rang 0-Präferenz) sowiec4-standardundc4d-standard(Rang 1-Präferenz).PERFORMANCE: Bietet eine leistungsstarke Konfiguration mit etwa 8 GB Arbeitsspeicher pro vCPU und Laufwerkskonfigurationen höherer Stufen (höhere IOPS und höherer Durchsatz). Zu den aktuellen Kandidaten für Maschinentypen gehörenn4-highmem,n4d-highmem,n2-highmemundn2d-highmem(Präferenz Rang 0) sowiec4-highmemundc4d-highmem(Präferenz Rang 1).
Anzahl der Instanzen: Sie geben die Anzahl der Instanzen für jede Gruppe an:
- Master: muss 1 Instanz sein.
- Primäre Worker: positive Ganzzahl.
- Sekundäre Worker: nicht negative Ganzzahl.
Größe des Bootlaufwerks: Optionale Größe des Bootlaufwerks (z. B. 100 GB).
Managed Service for Apache Spark verwendet automatisch die Auto Zone-Platzierung, um Zonen in der Clusterregion zu bewerten und Kandidaten-Maschinentypen innerhalb der angeforderten Hardwareklasse auszuwählen, die über verfügbare Kapazität verfügen.
Anforderungen und Einschränkungen
Für den Modus „Hohe Verfügbarkeit“ gelten die folgenden Anforderungen und Einschränkungen:
- Ressourcenkontingente: Ihr Projekt muss in der Clusterregion über ausreichende Compute Engine-Ressourcenkontingente für alle infrage kommenden Maschinenfamilien in der ausgewählten Hardwareklasse (
N4,N4D,N2,N2D,C4undC4D) verfügen. Da die zugrunde liegenden infrage kommenden Maschinentypen von Google gesteuert werden und sich jederzeit ändern können, sollten Sie sich nicht auf bestimmte Maschinentypen verlassen. - Zonenspezifikation: Sie können keine explizite
--zone(oderzoneUri) angeben. Managed Service for Apache Spark wählt automatisch eine verfügbare Zone in der Region mithilfe der automatischen Zonenplatzierung aus. - Gegenseitiger Ausschluss bei festen Maschinen- und Knotenkonfigurationen:
- Wenn Sie Master-, primäre Worker- oder sekundäre Worker-Knotengruppen mit flexiblen Konfigurationen (
--master-flexible-config,--worker-flexible-configoder--secondary-worker-flexible-config) konfigurieren, können Sie für diese Knotengruppen keine Flags für Standardmaschinentyp, Instanzauswahl, Instanzanzahl, Laufwerk oder Beschleuniger angeben:- Master: Kann nicht mit
--master-machine-type,--master-machine-types,--master-instance-selection,--master-instance-flexibility-policy-file,--master-boot-disk-size,--master-boot-disk-type,--num-master-local-ssds,--master-acceleratoroder--master-min-cpu-platformkombiniert werden. - Primäre Worker: Können nicht mit
--num-workers,--worker-machine-type,--worker-machine-types,--worker-instance-selection,--worker-instance-flexibility-policy-file,--worker-boot-disk-size,--worker-boot-disk-type,--num-worker-local-ssds,--worker-acceleratoroder--worker-min-cpu-platformkombiniert werden. - Sekundäre Worker: Können nicht mit
--num-secondary-workers,--secondary-worker-type,--secondary-worker-machine-types,--secondary-worker-instance-selection,--secondary-worker-instance-flexibility-policy-file,--secondary-worker-boot-disk-size,--secondary-worker-boot-disk-type,--num-secondary-worker-local-ssdsoder--secondary-worker-acceleratorkombiniert werden.
- Master: Kann nicht mit
- Wenn in einem Cluster mit mehreren Knoten der Modus für hohe Verfügbarkeit für die Masterknotengruppe aktiviert ist, muss die primäre Worker-Knotengruppe ebenfalls flexible Konfigurationen (
--worker-flexible-config) verwenden. - Wenn sekundäre Worker in einem Cluster mit hoher Verfügbarkeit verwendet werden, müssen sie
--secondary-worker-flexible-configanstelle von Standard-Flags für sekundäre Worker verwenden.
- Wenn Sie Master-, primäre Worker- oder sekundäre Worker-Knotengruppen mit flexiblen Konfigurationen (
- Cluster mit einem einzelnen Knoten: In einem Cluster mit einem einzelnen Knoten (
--single-nodeoder--cluster-type=single-node) kann nur--master-flexible-configangegeben werden. Flexible Konfigurations-Flags für primäre und sekundäre Worker werden nicht unterstützt. - Clusterupdates: Sie können die Anzahl der Instanzen (
num-instances) für primäre und sekundäre Worker mitgcloud dataproc clusters updateaktualisieren. Die Anzahl der Kerne, die Hardwareklasse und die Größe des Bootlaufwerks sind Spezifikationen, die beim Erstellen festgelegt werden und danach nicht mehr geändert werden können. - Hochverfügbarkeitscluster: Hochverfügbarkeitscluster (Cluster mit drei Masterknoten) werden im Modus „Hohe Verfügbarkeit“ nicht unterstützt. Die Anzahl der Masterinstanzen muss 1 sein.
Cluster mit hoher Verfügbarkeit erstellen
Sie können einen Cluster im Modus „Hohe Verfügbarkeit“ mit der Google Cloud CLI oder der Dataproc API erstellen.
gcloud
Führen Sie den Befehl gcloud dataproc clusters create mit den Flags --master-flexible-config und --worker-flexible-config aus, um einen Cluster im Modus „Hohe Verfügbarkeit“ zu erstellen.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=1,boot-disk-size=BOOT_DISK_SIZE" \
--worker-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=NUM_WORKERS,boot-disk-size=BOOT_DISK_SIZE"
Ersetzen Sie Folgendes:
CLUSTER_NAMEist der Name des Clusters.REGION: die Compute Engine-Region für den Cluster, z. B.us-central1. Geben Sie keinen--zonean.CORES: die Anzahl der vCPUs pro VM-Instanz. Muss eine Zweierpotenz sein (2,4,8,16oder32).HARDWARE_CLASS: die Hardwareprofilklasse, entwederSTANDARDoderPERFORMANCE.NUM_WORKERS: die Anzahl der primären Worker-Knoten im Cluster.BOOT_DISK_SIZE: die Größe des Bootlaufwerks, z. B.100GB.
Sekundäre Worker hinzufügen
Wenn Sie sekundäre Worker-Knoten im Modus „Hohe Verfügbarkeit“ hinzufügen möchten, fügen Sie das Flag --secondary-worker-flexible-config ein:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=4,hardware-class=STANDARD,num-instances=1,boot-disk-size=100GB" \
--worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB" \
--secondary-worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB"
Cluster mit einem einzelnen Knoten erstellen
Wenn Sie einen Einzelknotencluster mit hoher Verfügbarkeit erstellen möchten, geben Sie --single-node (oder --cluster-type=single-node) mit --master-flexible-config an und lassen Sie die flexiblen Konfigurations-Flags für Worker weg:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--single-node \
--master-flexible-config="cores=4,hardware-class=STANDARD,boot-disk-size=100GB"
Worker-Kapazität des Clusters aktualisieren
Verwenden Sie den Befehl gcloud dataproc clusters update, um die Anzahl der primären oder sekundären Worker in einem vorhandenen Cluster mit hoher Verfügbarkeit zu skalieren:
gcloud dataproc clusters update CLUSTER_NAME \
--region=REGION \
--worker-flexible-config="num-instances=NEW_NUM_WORKERS"
REST
Senden Sie eine clusters.create-Anfrage, um einen Cluster mit hoher Verfügbarkeit über die REST API zu erstellen. Im Objekt ClusterConfig:
- Lassen Sie
gceClusterConfig.zoneUrileer oder lassen Sie es weg, um die Auto Zone-Platzierung zu aktivieren. - Geben Sie die Objekte
masterFlexibleConfigundworkerFlexibleConfigan.
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": {
"zoneUri": ""
},
"masterFlexibleConfig": {
"numInstances": 1,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
},
"workerFlexibleConfig": {
"numInstances": 2,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
}
}
}
Ersetzen Sie Folgendes:
PROJECT_ID: Projekt-ID in Cloud de Confiance by S3NS .REGION: die Compute Engine-Region, in der der Cluster erstellt wird, z. B.us-central1.CLUSTER_NAMEist der Name des Clusters.
Optional: Wenn Sie sekundäre Worker hinzufügen möchten, fügen Sie das Objekt secondaryWorkerFlexibleConfig mit den gewünschten Werten für numInstances, coreCount, hardwareClass und bootDiskSizeGb ein.