Scalabilità dei cluster Dataproc

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 una di un cluster Dataproc in qualsiasi momento, anche quando i job sono in esecuzione in un cluster Kubernetes. 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 poi eseguire la migrazione dei job nel nuovo cluster.

Perché scalare un cluster Dataproc?

  1. per aumentare il numero di worker e velocizzare l'esecuzione di un job
  2. per ridurre il numero di worker e risparmiare denaro (vedi Ritiro gestito come opzione da utilizzare quando si ridimensiona un cluster per evitare di perdere ancora in fase di sviluppo).
  3. per aumentare il numero di nodi per espandere la distribuzione Hadoop disponibile Archiviazione file system (HDFS)
di Gemini Advanced.

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:

  1. Utilizza la gcloud a strumento a riga di comando nell'interfaccia alla gcloud CLI.
  2. Modifica la configurazione del cluster nella console Google Cloud.
  3. Utilizza l'API REST.

I nuovi worker aggiunti a un cluster utilizzeranno lo stesso tipo di macchina come 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 scalare un cluster con gcloud dataproc clusters update, esegui questo comando.
gcloud dataproc clusters update cluster-name \
    --region=region \
    [--num-workers and/or --num-secondary-workers]=new-number-of-workers
dove cluster-name è il nome del cluster da aggiornare, new-number-of-workers è il numero aggiornato di nodi worker primari e/o secondari. Ad esempio, per scalare un cluster denominato "dataproc-1" per utilizzare cinque nodi worker principali, esegui questo comando.
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 scalarlo aprendo la pagina Dettagli cluster per il cluster da la console Google Cloud Cluster, facendo clic sul pulsante Modifica nella sezione Configurazione .
Inserisci un nuovo valore per il numero di nodi worker e/o Nodi worker prerilasciabili (aggiornati rispettivamente a "5" e "2", nel seguente screenshot).
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 1.2 o versioni successive, puoi utilizzare il ritiro gestito, che incorpora Dismissione gestita dei nodi YARN per terminare il lavoro in corso su un worker prima che venga rimosso dal cloud di un cluster 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 o uscire dal cluster. Dimensioni previste gruppo di worker secondario: x, dimensioni effettive: y",

attendi un minuti, per poi ripetere la richiesta di rimozione controllata.

Nota anche:

  • 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 di Dataproc incorpora Dismissione controllata dei nodi YARN per terminare il lavoro in corso su un worker prima che venga rimosso dal cloud di un cluster 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 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 è di 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"). Il valore massimo è di 1 giorno.

Console

Dopo aver creato un cluster, puoi selezionare rimozione controllata di un del cluster aprendo la pagina Dettagli cluster per il cluster da la console Google Cloud Cluster, facendo clic sul pulsante Modifica nella sezione Configurazione .
Nella sezione Ritiro gestito, controlla il "Utilizza la rimozione controllata" quindi seleziona un valore di timeout.
Fai clic su Salva per aggiornare il cluster.

Come annullare un'operazione di scaledown di rimozione controllata

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 diventano ACTIVE al completamento dell'annullamento dell'operazione.

  • Se l'operazione di scale down include aggiornamenti delle etichette, potrebbero non avere effetto.

di Gemini Advanced.

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.