Creare un cluster parziale

Ridurre gli effetti dell'indisponibilità delle VM specificate dall'utente in determinati regioni in orari specifici (stockout), Dataproc consente di richiedere la creazione di un partial cluster specificando un numero minimo di worker principali 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 funzionare e ad addebitare costi finché non vengono eliminati dall'utente. Se è possibile creare il numero minimo specificato di worker, viene creato il cluster. I worker non riusciti (non inizializzati) vengono eliminati e non comportano costi. Se il numero minimo specificato di worker non può essere viene creato e inizializzato, il cluster non viene creato. Lavoratori che creati non vengono eliminati per consentire il debug.
L'ora di creazione del cluster è ottimizzata. I tempi di creazione del cluster possono essere più lunghi poiché tutti i nodi devono segnalare il provisioning .
È possibile creare cluster a nodo singolo. Cluster a nodo singolo non sono disponibili per la creazione.

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 criterio di scalabilità automatica di esempio 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 per creare un cluster parziale Dataproc.

gcloud

Per creare un cluster parziale Dataproc dalla riga di comando, esegui il persone che seguo: gcloud dataproc clusters create localmente in una finestra del terminale o 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 di Compute Engine in cui si troverà il cluster del job.
  • NUM_WORKERS: il numero totale di worker principali nel cluster da crea, se disponibile.
  • 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 la seguente gcloud CLI per elencare il numero di worker, inclusi eventuali worker secondari, di cui è stato eseguito il provisioning nel cluster.

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