Per mitigare gli effetti dell'indisponibilità delle VM specificate dall'utente in regioni specifiche in momenti specifici (esaurimento scorte), Managed Service for Apache Spark ti 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 riesce. I worker creati continuano a essere eseguiti e a generare addebiti 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 generano addebiti. 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. |
| Il tempo di creazione del cluster è ottimizzato. | Il tempo di creazione del cluster può essere più lungo, poiché tutti i nodi devono segnalare lo stato di provisioning dello stato. |
| È possibile creare cluster a nodo singolo. | Non è possibile creare cluster a nodo singolo. |
Scalabilità automatica
Utilizza la scalabilità automatica con la creazione di cluster parziali per assicurarti che venga creato il numero di worker principali di destinazione (completo). 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 riprova finché il numero totale di istanze di worker principali non raggiunge una dimensione target di 10.
minInstances e maxInstances della policy corrispondono al numero minimo e totale
di worker principali specificati al momento della creazione del cluster (vedi
Creare un cluster parziale).
L'impostazione di scaleDownFactor su 0 impedisce al cluster di eseguire lo scale down da 10 a 8 e contribuisce a mantenere il numero di worker al limite massimo di 10 worker.
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 parziale Managed Service for Apache Spark.
gcloud
Per creare un cluster parziale Managed Service for Apache Spark dalla riga di comando, esegui il
seguente gcloud dataproc clusters create
comando localmente 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 principali nel cluster da creare, 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
workerConfig.minNumInstances
campo come parte 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 i worker secondari, di cui è stato eseguito il provisioning nel cluster.
gcloud dataproc clusters list \ --project=PROJECT \ --region=REGION \ --filter=clusterName=CLUSTER_NAME