Um die Auswirkungen der Nichtverfügbarkeit von vom Nutzer angegebenen VMs in bestimmten Regionen zu bestimmten Zeiten (stockouts) zu minimieren, können Sie mit Managed Service for Apache Spark die Erstellung eines partial cluster anfordern, indem Sie eine Mindestanzahl primärer Worker angeben, die für die Clustererstellung akzeptabel ist.
| Standard-Cluster | Teilweiser Cluster |
|---|---|
| Wenn ein oder mehrere primäre Worker nicht erstellt und initialisiert werden können, schlägt die Clustererstellung fehl. Erstellte Worker werden weiterhin ausgeführt und verursachen Kosten, bis sie vom Nutzer gelöscht werden. | Wenn die angegebene Mindestanzahl von Workern erstellt werden kann, der Cluster erstellt. Fehlerhafte (nicht initialisierte) Worker werden gelöscht und verursachen keine Kosten. Wenn die angegebene Mindestanzahl von Workern nicht erstellt und initialisiert werden kann, wird der Cluster nicht erstellt. Erstellte Worker werden nicht gelöscht, um die Fehlerbehebung zu ermöglichen. |
| Die Clustererstellungszeit ist optimiert. | Die Clustererstellung kann länger dauern, da alle Knoten den Bereitstellungsstatus melden müssen. |
| Cluster mit einem Knoten können erstellt werden. | Cluster mit einem Knoten können nicht erstellt werden. |
Autoscaling
Verwenden Sie Autoscaling mit der Erstellung eines teilweisen Clusters, um sicherzustellen, dass die Zielanzahl (vollständige Anzahl) der primären Worker erstellt wird. Autoscaling versucht, fehlgeschlagene Worker im Hintergrund zu erwerben, wenn sie für die Arbeitslast erforderlich sind.
Im Folgenden finden Sie ein Beispiel für eine Autoscaling-Richtlinie, die so lange wiederholt wird, bis die Gesamtzahl der primären Worker-Instanzen eine Zielgröße von 10 erreicht.
Die minInstances und maxInstances der Richtlinie entsprechen der Mindest- und Gesamtzahl der primären Worker, die bei der Clustererstellung angegeben wurden (siehe Teilweisen Cluster erstellen).
Wenn Sie scaleDownFactor auf 0 setzen, wird verhindert, dass der Cluster von 10 auf 8 herunterskaliert wird. So bleibt die Anzahl der Worker auf dem Maximum von 10 Worker begrenzt.
workerConfig:
minInstances: 8
maxInstances: 10
basicAlgorithm:
cooldownPeriod: 2m
yarnConfig:
scaleUpFactor: 1
scaleDownFactor: 0
gracefulDecommissionTimeout: 1h
Teilweisen Cluster erstellen
Sie können die Google Cloud CLI oder die Dataproc API verwenden, um einen teilweisen Cluster in Managed Service for Apache Spark zu erstellen.
gcloud
Führen Sie zum Erstellen eines teilweisen Clusters im Managed Service for Apache Spark in der Befehlszeile den
folgenden gcloud dataproc clusters create
Befehl lokal in einem Terminalfenster oder in
Cloud Shell aus.
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT \ --region=REGION \ --num-workers=NUM_WORKERS \ --min-num-workers=MIN_NUM_WORKERS \ other args ...
Ersetzen Sie Folgendes:
- CLUSTER_NAME: Der Clustername muss mit einem Kleinbuchstaben beginnen , gefolgt von bis zu 51 Kleinbuchstaben, Ziffern und Bindestrichen. Er darf nicht mit einem Bindestrich enden.
- PROJECT: Geben Sie das Projekt an, das mit dem Job-Cluster verknüpft ist.
- REGION: Geben Sie die Compute Engine-Region an, in der sich der Job-Cluster befindet.
- NUM_WORKERS: Die Gesamtzahl der primären Worker im Cluster, die erstellt werden sollen, falls verfügbar.
- MIN_NUM_WORKERS: Die Mindestanzahl der primären Worker, die erstellt werden sollen
wenn die angegebene Gesamtzahl der Worker (
NUM_WORKERS) nicht erstellt werden kann. Die Clustererstellung schlägt fehl, wenn diese Mindestanzahl primärer Worker nicht erstellt werden kann. Erstellte Worker werden nicht gelöscht, um die Fehlerbehebung zu ermöglichen. Wenn Sie dieses Flag weglassen, wird versucht, einen Standard-Cluster mit der Gesamtzahl der primären Worker (NUM_WORKERS) zu erstellen.
REST
Geben Sie zum Erstellen eines teilweisen Dataproc-Clusters die Mindestanzahl der primären Worker im
workerConfig.minNumInstances
Feld als Teil einer clusters.create-Anfrage an.
Anzahl der bereitgestellten Worker anzeigen
Nachdem Sie einen Cluster erstellt haben, können Sie den folgenden gcloud CLI-Befehl ausführen, um die Anzahl der Worker, einschließlich aller sekundären Worker, aufzulisten, die in Ihrem Cluster bereitgestellt wurden.
gcloud dataproc clusters list \ --project=PROJECT \ --region=REGION \ --filter=clusterName=CLUSTER_NAME