Per scalare un cluster Dataproc su GKE, aggiorna la configurazione del gestore della scalabilità automatica dei node pool associati ai ruoli di driver Spark o executor Spark. Quando crei un cluster Dataproc su GKE, specifichi i node pool Dataproc su GKE e i relativi ruoli associati.
Imposta la scalabilità automatica del node pool
Puoi impostare i limiti per la scalabilità automatica dei node pool Dataproc su GKE quando crei un cluster virtuale Dataproc su GKE. Se non vengono specificati, i node pool Dataproc su GKE vengono scalati automaticamente con i valori predefiniti (nella release GA di Dataproc su GKE, i valori predefiniti sono impostati su minimo = 1 e massimo = 10, che sono soggetti a modifiche). Per ottenere valori specifici di scalabilità automatica minima e massima del node pool, impostali quando crei il cluster virtuale Dataproc su GKE.
Aggiorna la scalabilità automatica del node pool
Utilizza il seguente comando
gcloud container node-pools update
di GKE per modificare la configurazione della scalabilità automatica di un node pool Dataproc su GKE.
gcloud container node-pools update NODE_POOL_NAME \ --cluster=GKE_CLUSTER_NAME \ --region=region \ --enable-autoscaling \ --min-nodes=min nodes (must be <= max-nodes) \ --max-nodes=max nodes (must be >= min-nodes) \
Come funziona la scalabilità automatica di Spark
- Quando viene inviato un job, il pod del driver viene pianificato per l'esecuzione nel node pool associato al ruolo di driver Spark.
- Il pod del driver chiama lo scheduler GKE per creare i pod dell'executor.
- I pod dell'executor vengono pianificati nel node pool associato al ruolo di executor Spark.
- Se i node pool hanno capacità per i pod, questi iniziano a essere eseguiti immediatamente. Se la capacità è insufficiente, il gestore della scalabilità automatica dei cluster GKE aumenta la scalabilità del node pool per fornire le risorse richieste, fino al limite specificato dall'utente. Quando i node pool hanno una capacità in eccesso, il gestore della scalabilità automatica dei cluster GKE riduce la scalabilità del node pool fino al limite specificato dall'utente.