Dopo aver creato un cluster Dataproc, puoi modificare ("scalare") il cluster aumentando o diminuendo il numero di nodi worker primari o secondari (scalabilità orizzontale) nel cluster. Puoi scalare un cluster Dataproc in qualsiasi momento, anche quando i job sono in esecuzione sul cluster. Non puoi modificare il tipo di macchina di un cluster esistente (verticale scalabilità). Per scalare verticalmente, crea un cluster utilizzando un tipo di macchina supportato, e quindi di eseguire la migrazione dei job nel nuovo cluster.
Perché scalare un cluster Dataproc?
- per aumentare il numero di worker in modo da velocizzare l'esecuzione di un job
- per ridurre il numero di worker per risparmiare (consulta Disattivazione graduale come opzione da utilizzare per il ridimensionamento di un cluster per evitare di perdere lavorazioni in corso).
- per aumentare il numero di nodi al fine di espandere lo spazio di archiviazione Hadoop Distributed File System (HDFS) disponibile
Poiché la scalabilità dei cluster può essere eseguita più di una volta, potrebbe essere utile aumentare/diminuire contemporaneamente la dimensione del cluster e quindi diminuire/aumentare le dimensioni dimensioni in seguito.
Utilizzo della scalabilità
Esistono tre modi per scalare il cluster Dataproc:
- Utilizza lo strumento a riga di comando
gcloud
nell'interfaccia a riga di comando gcloud. - Modifica la configurazione del cluster nella console Google Cloud.
- Utilizza l'API REST.
I nuovi worker aggiunti a un cluster utilizzeranno lo stesso
tipo di macchina
dei worker esistenti. Ad esempio, se un cluster viene creato
worker che utilizzano il tipo di macchina n1-standard-8
, nuovi worker
utilizzerà anche il tipo di macchina n1-standard-8
.
Puoi scalare il numero di worker principali o di quelli secondari (prerilasciabili) o entrambi. Ad esempio, se riporti in scala solo il numero worker prerilasciabili, il numero di worker principali rimane invariato.
gcloud
Per eseguire lo scaling di un cluster con gcloud dataproc clusters update, esegui il seguente comando.gcloud dataproc clusters update cluster-name \ --region=region \ [--num-workers and/or --num-secondary-workers]=new-number-of-workers
gcloud dataproc clusters update dataproc-1 \ --region=region \ --num-workers=5 ... Waiting on operation [operations/projects/project-id/operations/...]. Waiting for cluster update operation...done. Updated [https://dataproc.googleapis.com/...]. clusterName: my-test-cluster ... masterDiskConfiguration: bootDiskSizeGb: 500 masterName: dataproc-1-m numWorkers: 5 ... workers: - my-test-cluster-w-0 - my-test-cluster-w-1 - my-test-cluster-w-2 - my-test-cluster-w-3 - my-test-cluster-w-4 ...
API REST
Vedi clusters.patch.
Esempio
PATCH /v1/projects/project-id/regions/us-central1/clusters/example-cluster?updateMask=config.worker_config.num_instances,config.secondary_worker_config.num_instances { "config": { "workerConfig": { "numInstances": 4 }, "secondaryWorkerConfig": { "numInstances": 2 } }, "labels": null }
Console
Dopo aver creato un cluster, puoi eseguirne il ridimensionamento aprendo la pagina Dettagli cluster del cluster dalla pagina Cluster della console Google Cloud e facendo clic sul pulsante Modifica nella scheda Configurazione. Inserisci un nuovo valore per il numero di nodi worker e/o nodi worker preemptivi (aggiornato rispettivamente a "5" e "2" nello screenshot seguente). Fai clic su Salva per aggiornare il cluster.Come Dataproc seleziona i nodi cluster da rimuovere
Nei cluster creati con versioni immagine 1.5.83+, 2.0.57+, e 2.1.5+, durante lo scale down di un cluster, Dataproc cerca di ridurre al minimo l'impatto della rimozione dei nodi sull'esecuzione delle applicazioni YARN rimuovendo nodi inattivi, non integri e inattivi, rimuovendo quindi i nodi con il minor numero di master di applicazioni YARN e di container in esecuzione.
Ritiro gestito automaticamente
Quando esegui il downgrade di un cluster, il lavoro in corso potrebbe interrompersi prima del completamento. Se utilizzi Dataproc versione 1.2 o successive, puoi utilizzare il ritiro gestito automaticamente, che incorpora il ritiro gestito automaticamente dei nodi YARN per completare il lavoro in corso su un worker prima che venga rimosso dal cluster Cloud Dataproc.
Ritiro gestito e lavoratori secondari
Il gruppo di worker prerilasciabile (secondario) continua a eseguire il provisioning o l'eliminazione
di raggiungere le dimensioni previste anche dopo un'operazione di scalabilità del cluster
è contrassegnato come completato. Se tenti di ritirare temporaneamente un worker secondario
e ricevi un messaggio di errore simile al seguente:
"Secondario
il gruppo di worker non può essere modificato al di fuori di Dataproc. Se di recente
creato o aggiornato questo cluster, attendi qualche minuto prima
per consentire a tutte le istanze secondarie di unirsi al cluster o abbandonarlo.
Dimensioni del gruppo di worker secondari previste: x, dimensioni effettive: y",
attendi qualche minuto, quindi ripeti la richiesta di ritiro graduale.
Tieni inoltre presente quanto segue:
- Puoi ritirare forzatamente i worker prerilasciabili in qualsiasi momento.
- Puoi ritirare temporaneamente i worker principali in qualsiasi momento
Utilizzo del ritiro gestito automaticamente
Il ritiro gestito automaticamente di Dataproc incorpora la rimozione controllata dei nodi YARN per completare il lavoro in corso su un worker prima che venga rimosso dal cluster Cloud Dataproc. Per impostazione predefinita, la rimozione controllata è disattivato. Tu abilitalo impostando un valore di timeout quando aggiorni il tuo cluster per rimuovere uno o più worker dal cluster.
gcloud
Quando aggiorni un cluster per rimuovere uno o più worker, utilizza il comando gcloud dataproc clusters update con il flag--graceful-decommission-timeout
. Il timeout
I valori (stringa) possono essere un valore di "0s" (l'impostazione predefinita; energico, non aggraziato)
ritiro) o una durata positiva rispetto all'ora attuale (ad es. "3 s").
La durata massima è 1 giorno.
gcloud dataproc clusters update cluster-name \ --region=region \ --graceful-decommission-timeout="timeout-value" \ [--num-workers and/or --num-secondary-workers]=decreased-number-of-workers \ ... other args ...
API REST
Vedi clusters.patch.gracefulDecommissionTimeout. Il timeout (stringa) i valori possono essere "0" (l'impostazione predefinita; energico, non aggraziato) ritiro) o una durata in secondi (ad esempio "3 s"). La durata massima è di 1 giorno.Console
Dopo aver creato un cluster, puoi selezionare il ritiro graduale di un cluster aprendo la pagina Dettagli cluster del cluster dalla pagina Cluster della console Google Cloud, quindi facendo clic sul pulsante Modifica nella scheda Configurazione. Nella sezione Ritiro gestito, controlla il "Utilizza rimozione controllata" quindi seleziona un valore di timeout. Fai clic su Salva per aggiornare il cluster.Come annullare un'operazione di riduzione graduale del ritiro gestito automaticamente
Nei cluster Dataproc creati con versioni immagine
2.0.57+
o 2.1.5+,
puoi eseguire gcloud dataproc operations cancel
un comando o emettere un'API Dataproc
operations.cancel
richiesta di annullamento di un'operazione di scaledown di rimozione controllata.
Quando annulli un'operazione di scaledown di rimozione controllata:
I lavoratori in uno stato
DECOMMISSIONING
vengono rimessi in funzione e diventanoACTIVE
al completamento dell'annullamento dell'operazione.Se l'operazione di riduzione include aggiornamenti delle etichette, questi aggiornamenti potrebbero non essere applicati.
Per verificare lo stato della richiesta di annullamento, puoi:
esegui gcloud dataproc operations describe
un comando o emettere un'API Dataproc
operations.get
richiesta. Se l'operazione di annullamento ha esito positivo, viene contrassegnato lo stato dell'operazione interna.
come ANNULLATO.