In Cloud Data Fusion, la configurazione del cluster si riferisce alla definizione di come le pipeline di elaborazione dati utilizzano le risorse di calcolo durante l'esecuzione dei job Spark su Dataproc. Questa pagina descrive gli approcci principali alla configurazione del cluster.
Cluster temporanei predefiniti (opzione consigliata)
L'utilizzo dei cluster predefiniti è l'approccio consigliato per le pipeline Cloud Data Fusion.
- Cloud Data Fusion esegue automaticamente il provisioning e la gestione dei cluster Dataproc temporanei per ogni esecuzione della pipeline. Crea un cluster all'inizio dell'esecuzione della pipeline e lo elimina al termine dell'esecuzione della pipeline.
- Vantaggi dei cluster temporanei:
- Semplicità: non devi configurare o gestire manualmente il cluster.
- Convenienza: paghi solo le risorse utilizzate durante l'esecuzione della pipeline.
Per regolare i cluster e ottimizzare le prestazioni, vedi Dimensionamento dei cluster.
Cluster statici (per scenari specifici)
Nei seguenti scenari, puoi utilizzare i cluster statici:
- Pipeline a esecuzione prolungata: per le pipeline che vengono eseguite continuamente o per periodi prolungati, un cluster statico può essere più conveniente della creazione e dell'eliminazione ripetute di cluster effimeri.
- Gestione centralizzata dei cluster: se la tua organizzazione richiede un controllo centralizzato sulle norme di creazione e gestione dei cluster, i cluster statici possono essere utilizzati insieme a strumenti come Terraform.
- Tempo di creazione del cluster: quando il tempo necessario per creare un nuovo cluster per ogni pipeline è proibitivo per il tuo caso d'uso.
Tuttavia, i cluster statici richiedono una configurazione più manuale e comportano la gestione del ciclo di vita del cluster.
Per utilizzare un cluster statico, devi impostare le seguenti proprietà sul cluster Dataproc:
dataproc:dataproc.conscrypt.provider.enable=false
capacity-scheduler:yarn.scheduler.capacity.resource-calculator="org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator"
Opzioni di configurazione dei cluster statici
Se scegli di utilizzare cluster statici, Cloud Data Fusion offre opzioni di configurazione per i seguenti aspetti:
- Tipo di macchina worker: specifica il tipo di macchina virtuale per i nodi worker nel cluster. Determina le vCPU e la memoria disponibili per ogni worker.
- Numero di worker: definisci il numero iniziale di nodi worker nel cluster. Dataproc potrebbe comunque scalare automaticamente questo numero in base al carico di lavoro.
- Zona: seleziona la zona Google Cloud del tuo cluster. La posizione può influire sulla località dei dati e sulle prestazioni di rete.
- Configurazioni aggiuntive: puoi configurare opzioni avanzate per il tuo cluster statico, ad esempio impostazioni di preemptive, impostazioni di rete e azioni di inizializzazione.
Best practice
Quando crei un cluster statico per le tue pipeline, utilizza le seguenti configurazioni.
Parametri | Descrizione |
---|---|
yarn.nodemanager.delete.debug-delay-sec |
Conserva i log YARN. Valore consigliato: 86400 (equivalente a un giorno) |
yarn.nodemanager.pmem-check-enabled |
Consente a YARN di verificare i limiti di memoria fisica e di terminare i container se
superano la memoria fisica. Valore consigliato: false |
yarn.nodemanager.vmem-check-enabled |
Consente a YARN di verificare i limiti di memoria virtuale e di terminare i container se
superano la memoria fisica. Valore consigliato: false |
dataproc.scheduler.driver-size-mb |
L'impronta di memoria media del driver fa sì che Dataproc metta in coda il job se il nodo master non dispone di memoria sufficiente per eseguire il processo del driver. Ciò può influire sulla concorrenza dei job, ma può essere mitigato utilizzando un nodo master con più memoria. Valore consigliato: 2048 |
Per saperne di più, consulta Esegui una pipeline su un cluster Dataproc esistente.
Riutilizzo dei cluster
Puoi riutilizzare i cluster Dataproc tra le esecuzioni per migliorare il tempo di elaborazione. Il riutilizzo dei cluster viene implementato in un modello simile al pooling delle connessioni o dei thread. Qualsiasi cluster viene mantenuto attivo per un periodo di tempo specificato dopo il completamento dell'esecuzione. Quando viene avviata una nuova esecuzione, il sistema tenta di trovare un cluster inattivo disponibile che corrisponda alla configurazione del profilo di calcolo. Se è presente, verrà utilizzato, altrimenti verrà avviato un nuovo cluster.
Considerazioni per il riutilizzo dei cluster
- I cluster non sono condivisi. Analogamente al normale modello di provisioning del cluster temporaneo, un cluster esegue una sola esecuzione della pipeline alla volta. Un cluster viene riutilizzato solo se è inattivo.
- Se abiliti il riutilizzo del cluster per tutte le esecuzioni, il numero necessario di cluster per elaborare tutte le esecuzioni verrà creato in base alle necessità. Analogamente al provisioning effimero di Dataproc, non esiste un controllo diretto sul numero di cluster creati. Puoi comunque utilizzare le quote di Google Cloud per gestire le risorse. Ad esempio, se esegui 100 esecuzioni con un massimo di 7 esecuzioni parallele, avrai fino a 7 cluster in un determinato momento.
I cluster vengono riutilizzati tra pipeline diverse non appena queste utilizzano lo stesso profilo e condividono le stesse impostazioni del profilo. Se viene utilizzata la personalizzazione del profilo, i cluster verranno comunque riutilizzati, ma solo se le personalizzazioni sono esattamente le stesse, incluse tutte le impostazioni del cluster, come l'etichettatura del cluster.
Quando il riutilizzo del cluster è abilitato, ci sono due considerazioni principali sui costi:
- Vengono utilizzate meno risorse per l'avvio e l'inizializzazione del cluster.
- Vengono utilizzate più risorse per i cluster inattivi tra le esecuzioni della pipeline e dopo l'ultima esecuzione della pipeline.
Sebbene sia difficile prevedere l'effetto sui costi del riutilizzo dei cluster, puoi adottare una strategia per ottenere il massimo risparmio. La strategia consiste nell'identificare un percorso critico per le pipeline concatenate e abilitare il riutilizzo del cluster per questo percorso critico. In questo modo il cluster viene riutilizzato immediatamente, non viene sprecato tempo di inattività e si ottengono i massimi vantaggi in termini di prestazioni.
Abilita il riutilizzo del cluster
Nella sezione Compute Config della configurazione della pipeline di cui è stato eseguito il deployment o durante la creazione di un nuovo profilo di calcolo:
- Attiva l'opzione Ignora eliminazione cluster.
- Max Idle Time è il tempo massimo durante il quale un cluster attende la successiva pipeline per riutilizzarlo. Il tempo di inattività massimo predefinito è 30 minuti. Per Max Idle Time, valuta il costo rispetto alla disponibilità del cluster per il riutilizzo. Maggiore è il valore di Tempo massimo di inattività, più cluster rimangono inattivi, pronti per l'esecuzione.
Risoluzione dei problemi: compatibilità delle versioni
Problema: la versione del tuo ambiente Cloud Data Fusion potrebbe non essere compatibile con la versione del tuo cluster Dataproc.
Consigliato: esegui l'upgrade all'ultima versione di Cloud Data Fusion e utilizza una delle versioni di Dataproc supportate.
Le versioni precedenti di Cloud Data Fusion sono compatibili solo con versioni non supportate di Dataproc. Dataproc non fornisce aggiornamenti e supporto per i cluster creati con queste versioni. Anche se puoi continuare a eseguire un cluster creato con una versione non supportata, ti consigliamo di sostituirlo con uno creato con una versione supportata.
Versione di Cloud Data Fusion | Versione Dataproc |
---|---|
6.11.1 | 2.3 |
6.10.1.1 | 2.2***, 2.1, 2.0 * |
6.10 | 2.1, 2.0 * |
6,9 | 2.1, 2.0, 1.5 * |
6,7-6,8 | 2.0, 1.5 * |
6,4-6,6 | 2.0 *, 1.3 ** |
6,1-6,3 | 1,3** |
major.minor
.Per specificare la versione del sistema operativo utilizzata nel cluster Dataproc, la versione del sistema operativo deve essere compatibile con una delle versioni di Dataproc supportate per Cloud Data Fusion nella tabella precedente.
Risoluzione dei problemi: il container è uscito con un codice di uscita diverso da zero 3
Problema: non viene utilizzato un criterio di scalabilità automatica e i cluster Dataproc statici riscontrano problemi di memoria, causando la visualizzazione di un'eccezione di memoria insufficiente nei log: Container exited with a non-zero
exit code 3
.
Consigliato: aumenta la memoria dell'executor.
Aumenta la memoria aggiungendo un argomento di runtime task.executor.system.resources.memory
alla pipeline. Il seguente argomento di runtime imposta la memoria
su 4096 MB:
"task.executor.system.resources.memory": 4096
Per saperne di più, consulta Dimensionamento del cluster.
Passaggi successivi
- Consulta la sezione Come modificare la versione immagine di Dataproc.