Per mitigare gli effetti della mancata disponibilità delle VM specificate dall'utente in regioni specifiche in momenti specifici (esaurimento scorte), Dataproc ti consente di richiedere la creazione di un partial cluster
specificando un numero minimo di worker principali accettabili per consentire la creazione del cluster.
Cluster standard | Cluster parziale |
---|---|
Se non è possibile creare e inizializzare uno o più worker principali, la creazione del cluster non va a buon fine. I worker creati continuano a funzionare e ad addebitare costi finché non vengono eliminati dall'utente. | Se è possibile creare il numero minimo di worker specificato, il cluster viene creato. I worker non riusciti (non inizializzati) vengono eliminati e non comportano costi. Se non è possibile creare e inizializzare il numero minimo di worker specificato, il cluster non viene creato. I worker creati non vengono eliminati per consentire il debug. |
L'ora di creazione del cluster è ottimizzata. | Il tempo di creazione del cluster può essere più lungo poiché tutti i nodi devono segnalare lo stato del provisioning. |
È possibile creare cluster a nodo singolo. | La creazione di cluster a nodo singolo non è consentita. |
Scalabilità automatica:
Utilizza la scalabilità automatica con la creazione di cluster parziali per assicurarti che venga creato il numero (completo) target di worker principali. La scalabilità automatica tenterà di acquisire i worker non riusciti in background se il carico di lavoro li richiede.
Di seguito è riportato un esempio di criterio di scalabilità automatica che esegue nuovamente i tentativi finché il numero totale di istanze di worker principali non raggiunge una dimensione target di 10.
I valori minInstances
e maxInstances
del criterio corrispondono al numero minimo e totale di worker principali specificati al momento della creazione del cluster (consulta Come creare un cluster parziale).
L'impostazione di scaleDownFactor
su 0 impedisce al cluster di ridurre la dimensione da 10 a 8 e contribuirà a mantenere il numero di worker al limite massimo di 10.
workerConfig:
minInstances: 8
maxInstances: 10
basicAlgorithm:
cooldownPeriod: 2m
yarnConfig:
scaleUpFactor: 1
scaleDownFactor: 0
gracefulDecommissionTimeout: 1h
Come creare un cluster parziale
Puoi utilizzare Google Cloud CLI o l'API Dataproc per creare un cluster parziale Dataproc.
gcloud
Per creare un cluster parziale Dataproc sulla riga di comando, esegui il seguente comando gcloud dataproc clusters create
in locale in una finestra del terminale o in Cloud Shell.
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT \ --region=REGION \ --num-workers=NUM_WORKERS \ --min-num-workers=MIN_NUM_WORKERS \ other args ...
- CLUSTER_NAME: il nome del cluster deve iniziare con una lettera minuscola seguita da un massimo di 51 lettere minuscole, numeri e trattini e non può terminare con un trattino.
- PROJECT: specifica il progetto associato al cluster di job.
- REGION: specifica la regione Compute Engine in cui si troverà il cluster di job.
- NUM_WORKERS: il numero totale di worker principali nel cluster da creare, se disponibili.
- MIN_NUM_WORKERS: il numero minimo di worker principali da creare se non è possibile creare il numero totale di worker specificato (
NUM_WORKERS
). La creazione del cluster non riesce se non è possibile creare questo numero minimo di worker principali (i worker creati non vengono eliminati per consentire il debug). Se questo flag viene omesso, viene tentata la creazione di un cluster standard con il numero totale di worker principali (NUM_WORKERS
).
REST
Per creare un cluster parziale Dataproc, specifica il numero minimo di worker principali nel campo
workerConfig.minNumInstances
nell'ambito di una richiesta clusters.create.
Mostra il numero di worker di cui è stato eseguito il provisioning
Dopo aver creato un cluster, puoi eseguire il seguente comando gcloud CLI per elencare il numero di worker, inclusi eventuali worker secondari, provisionati nel cluster.
gcloud dataproc clusters list \ --project=PROJECT \ --region=REGION \ --filter=clusterName=CLUSTER_NAME