Crea un cluster Dataproc parziale

Per mitigare gli effetti dell'indisponibilità delle VM specificate dall'utente in regioni specifiche in momenti specifici (esaurimento delle scorte), Dataproc ti consente di richiedere la creazione di un partial cluster specificando un numero minimo di worker primari accettabile 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 essere eseguiti e a generare addebiti finché non vengono eliminati dall'utente. Se è possibile creare il numero minimo specificato di worker, il cluster viene creato. I worker non inizializzati vengono eliminati e non comportano addebiti. Se non è possibile creare e inizializzare il numero minimo specificato di worker, il cluster non viene creato. I worker creati non vengono eliminati per consentire il debug.
Il tempo di creazione del cluster è ottimizzato. La creazione del cluster potrebbe richiedere più tempo, poiché tutti i nodi devono segnalare lo stato di provisioning.
I cluster a nodo singolo sono disponibili per la creazione. I cluster a nodo singolo non sono disponibili per la creazione.

Scalabilità automatica

Utilizza la scalabilità automatica con la creazione parziale del cluster per assicurarti che venga creato il numero target (completo) di worker principali. La scalabilità automatica tenterà di acquisire i worker non riusciti in background se il carico di lavoro lo richiede.

Di seguito è riportato un esempio di policy di scalabilità automatica che esegue nuovi tentativi finché il numero totale di istanze worker principali non raggiunge una dimensione target di 10. minInstances e maxInstances del criterio corrispondono al numero minimo e totale di worker principali specificati al momento della creazione del cluster (vedi Creare un cluster parziale). Se imposti scaleDownFactor su 0, il cluster non viene ridimensionato da 10 a 8 e il numero di worker rimane al limite massimo di 10.

workerConfig:
  minInstances: 8
  maxInstances: 10
basicAlgorithm:
  cooldownPeriod: 2m
  yarnConfig:
    scaleUpFactor: 1
    scaleDownFactor: 0
    gracefulDecommissionTimeout: 1h

Creare un cluster parziale

Puoi utilizzare Google Cloud CLI o l'API Dataproc per creare un cluster Dataproc parziale.

gcloud

Per creare un cluster Dataproc parziale dalla riga di comando, esegui il 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 ...

Sostituisci quanto segue:

  • 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 primari nel cluster da creare, se disponibili.
  • MIN_NUM_WORKERS: il numero minimo di worker primari da creare se non è possibile creare il numero totale specificato di worker (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 Dataproc parziale, specifica il numero minimo di worker primari nel campo workerConfig.minNumInstances nell'ambito di una richiesta clusters.create.

Visualizzare 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 quelli secondari, di cui è stato eseguito il provisioning nel cluster.

gcloud dataproc clusters list \
    --project=PROJECT \
    --region=REGION \
    --filter=clusterName=CLUSTER_NAME