Um die Auswirkungen der Nichtverfügbarkeit von nutzerdefinierten VMs in bestimmten Regionen zu bestimmten Zeiten (Lagerengpässe) zu minimieren, können Sie mit Dataproc die Erstellung eines partial cluster
anfordern, indem Sie eine Mindestanzahl von primären Workern angeben, die für die Clustererstellung akzeptabel ist.
Standard-Cluster | Teilcluster |
---|---|
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 Gebühren, bis sie vom Nutzer gelöscht werden. | Wenn die angegebene Mindestanzahl von Workern erstellt werden kann, wird der Cluster erstellt. Fehlerhafte (nicht initialisierte) Worker werden gelöscht und es fallen keine Gebühren 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 Debugging 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. |
Cluster mit einem Knoten können erstellt werden. | Cluster mit einzelnem Knoten können nicht erstellt werden. |
Autoscaling
Verwenden Sie Autoscaling mit der teilweisen Clustererstellung, um dafür zu sorgen, dass die Zielanzahl (vollständige Anzahl) primärer Worker erstellt wird. Autoscaling versucht, fehlgeschlagene Worker im Hintergrund abzurufen, wenn die Arbeitslast sie erfordert.
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
-Werte der Richtlinie entsprechen der Mindest- und Gesamtzahl der primären Worker, die beim Erstellen des Clusters angegeben wurden (siehe Teilcluster erstellen).
Wenn Sie scaleDownFactor
auf 0 setzen, wird verhindert, dass der Cluster von 10 auf 8 Worker herunterskaliert wird. So bleibt die Anzahl der Worker auf dem maximalen Limit von 10 Workern.
workerConfig:
minInstances: 8
maxInstances: 10
basicAlgorithm:
cooldownPeriod: 2m
yarnConfig:
scaleUpFactor: 1
scaleDownFactor: 0
gracefulDecommissionTimeout: 1h
Teilcluster erstellen
Sie können die Google Cloud CLI oder die Dataproc API verwenden, um einen partiellen Dataproc-Cluster zu erstellen.
gcloud
Führen Sie zum Erstellen eines partiellen Dataproc-Clusters 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. Das letzte Zeichen darf kein Bindestrich sein.
- PROJECT: Geben Sie das Projekt an, das dem Jobcluster zugeordnet 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 sollen, wenn die angegebene Gesamtzahl der Worker (
NUM_WORKERS
) nicht erstellt werden kann. Die Clustererstellung schlägt fehl, wenn diese Mindestanzahl von primären Workern nicht erstellt werden kann. Die erstellten Worker werden nicht gelöscht, um das Debugging zu ermöglichen. Wenn dieses Flag weggelassen wird, wird versucht, einen Standardcluster mit der Gesamtzahl der primären Worker (NUM_WORKERS
) zu erstellen.
REST
Wenn Sie einen partiellen Dataproc-Cluster 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 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