Um die Auswirkungen der Nichtverfügbarkeit von vom Nutzer angegebenen VMs in bestimmten Regionen zu bestimmten Zeiten (Nichtverfügbarkeit) zu minimieren, können Sie in Dataproc die Erstellung einer partial cluster
anfordern, indem Sie eine Mindestanzahl von primären Arbeitsstationen angeben, die für die Clustererstellung akzeptabel ist.
Standard-Cluster | Teilcluster |
---|---|
Wenn mindestens ein primärer Worker nicht erstellt und initialisiert werden kann, schlägt die Clustererstellung fehl. Erstellte Worker werden weiter ausgeführt und es fallen Kosten an, bis sie vom Nutzer gelöscht werden. | Wenn die angegebene Mindestanzahl von Workern erstellt werden kann, wird der Cluster erstellt. Fehlgeschlagene (nicht initialisierte) Worker werden gelöscht und es fallen keine Kosten an. Wenn die angegebene Mindestanzahl von Workern nicht erstellt und initialisiert werden kann, wird der Cluster nicht erstellt. Erstellte Worker werden nicht gelöscht, um das Debuggen zu ermöglichen. |
Die Zeit für die Clustererstellung wurde optimiert. | Die Clustererstellung kann länger dauern, da alle Knoten den Bereitstellungsstatus melden müssen. |
Sie können Cluster mit einem einzelnen Knoten erstellen. | Cluster mit einem Knoten können nicht erstellt werden. |
Autoscaling:
Verwenden Sie die Autoskalierung bei der teilweisen Clustererstellung, um sicherzustellen, dass die Zielanzahl (volle Anzahl) primärer Worker erstellt wird. Das Autoscaling versucht, im Hintergrund ausgefallene Worker zu erwerben, wenn die Arbeitslast dies erfordert.
Im folgenden Beispiel wird eine Beispiel-Autoscaling-Richtlinie verwendet, die so lange wiederholt wird, bis die Gesamtzahl der primären Workerinstanzen die Zielgröße von 10 erreicht.
minInstances
und maxInstances
der Richtlinie stimmen mit der Mindest- und Gesamtzahl der primären Worker überein, die beim Erstellen des Clusters angegeben wurde (siehe Einen Teilcluster erstellen).
Wenn Sie scaleDownFactor
auf 0 festlegen, wird verhindert, dass der Cluster von 10 auf 8 skaliert wird. Außerdem wird die Anzahl der Worker auf maximal 10 gehalten.
workerConfig:
minInstances: 8
maxInstances: 10
basicAlgorithm:
cooldownPeriod: 2m
yarnConfig:
scaleUpFactor: 1
scaleDownFactor: 0
gracefulDecommissionTimeout: 1h
Teilcluster erstellen
Sie können einen Dataproc-Teilcluster mit der Google Cloud CLI oder der Dataproc API erstellen.
gcloud
Führen Sie zum Erstellen eines Dataproc-Teilclusters 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 ...
- CLUSTER_NAME: Der Clustername muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 51 Kleinbuchstaben, Ziffern und Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein.
- PROJECT: Geben Sie das Projekt an, das mit dem Jobcluster verknüpft ist.
- REGION: Geben Sie die Compute Engine-Region an, in der sich der Jobcluster befinden soll.
- NUM_WORKERS: Die Gesamtzahl der primären Worker im Cluster, die erstellt werden sollen, sofern verfügbar.
- MIN_NUM_WORKERS: Die Mindestanzahl der primären Worker, die erstellt werden müssen, wenn die angegebene Gesamtzahl der Worker (
NUM_WORKERS
) nicht erstellt werden kann. Das Erstellen des Clusters schlägt fehl, wenn diese Mindestanzahl an primären Workern nicht erstellt werden kann. Bereits erstellte Worker werden nicht gelöscht, um das Debuggen zu ermöglichen. Wenn Sie dieses Flag weglassen, wird versucht, einen Standardcluster mit der Gesamtzahl der primären Worker (NUM_WORKERS
) zu erstellen.
REST
Wenn Sie einen Dataproc-Teilcluster erstellen möchten, geben Sie die Mindestanzahl der primären Worker im Feld workerConfig.minNumInstances
als Teil einer clusters.create-Anfrage an.
Anzahl der bereitgestellten Worker anzeigen
Nachdem Sie einen Cluster erstellt haben, können Sie mit dem folgenden gcloud CLI-Befehl die Anzahl der in Ihrem Cluster bereitgestellten Worker auflisten, einschließlich sekundärer Worker.
gcloud dataproc clusters list \ --project=PROJECT \ --region=REGION \ --filter=clusterName=CLUSTER_NAME