Configurazione del cluster Dataproc

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 di 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 di cluster Dataproc temporanei per ogni esecuzione della pipeline. Crea un cluster all'inizio dell'esecuzione della pipeline, quindi lo elimina al termine dell'esecuzione della pipeline.
  • Vantaggi dei cluster temporanei:
    • Semplicità: non è necessario configurare o gestire manualmente il cluster.
    • Economicità: paghi solo per le risorse utilizzate durante l'esecuzione della pipeline.

Per regolare i cluster e ottimizzare le prestazioni, consulta Dimensionamento dei cluster.

Cluster statici (per scenari specifici)

Nei seguenti scenari, puoi utilizzare i cluster statici:

  • Pipeline di lunga durata: per le pipeline che vengono eseguite continuamente o per periodi prolungati, un cluster statico può essere più conveniente rispetto alla creazione e al teardown ripetuti di cluster effimeri.
  • Gestione centralizzata dei cluster: se la tua organizzazione richiede un controllo centralizzato dei criteri 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 autonoma del ciclo di vita del cluster.

Per utilizzare un cluster statico, devi impostare la seguente proprietà sul cluster Dataproc:

dataproc:dataproc.conscrypt.provider.enable=false

Opzioni di configurazione dei cluster per i 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 del cluster. In questo modo vengono determinate le vCPU e la memoria disponibili per ciascun worker.
  • Numero di worker: definisci il numero iniziale di nodi worker nel cluster. Dataproc potrebbe comunque eseguire la scalabilità automatica di questo numero in base al carico di lavoro.
  • Zona: seleziona la Google Cloud zona del cluster. La posizione può influire sulla località dei dati e sulle prestazioni della rete.
  • Configurazioni aggiuntive: puoi configurare opzioni avanzate per il tuo cluster statico, ad esempio impostazioni di prelazione, impostazioni di rete e azioni di inizializzazione.

Best practice

Quando crei un cluster statico per le pipeline, utilizza le seguenti configurazioni.

Parametri Descrizione
yarn.nodemanager.delete.debug-delay-sec Mantiene i log YARN.
Valore consigliato: 86400 (equivalente a un giorno)
yarn.nodemanager.pmem-check-enabled Consente a YARN di verificare la presenza di limiti di memoria fisica e di uccidere i container se superano la memoria fisica.
Valore consigliato: false
yarn.nodemanager.vmem-check-enabled Consente a YARN di verificare la presenza di limiti di memoria virtuale e di uccidere i container se superano la memoria fisica.
Valore consigliato: false.

Per ulteriori informazioni, consulta Eseguire una pipeline in un cluster Dataproc esistente.

Riutilizzo dei cluster

Puoi riutilizzare i cluster Dataproc tra un'esecuzione e l'altra per migliorare il tempo di elaborazione. Il riutilizzo del cluster è implementato in un modello simile al pooling delle connessioni o al pooling dei thread. Qualsiasi cluster viene mantenuto attivo per un determinato periodo di tempo dopo il completamento dell'esecuzione. Quando viene avviata una nuova esecuzione, viene cercato 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 singola esecuzione della pipeline alla volta. Un cluster viene riutilizzato solo se è inattivo.
  • Se attivi il riutilizzo dei cluster per tutte le esecuzioni, il numero necessario di cluster per elaborare tutte le esecuzioni verrà creato in base alle esigenze. Come per il provisioning Dataproc temporaneo, non è possibile controllare direttamente il numero di cluster creati. Puoi comunque utilizzare le Google Cloud virgolette 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 ultime utilizzano lo stesso profilo e condividono le stesse impostazioni. 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 dei cluster come l'etichettatura dei cluster.

  • Quando il riutilizzo del cluster è abilitato, ci sono due aspetti principali da considerare in termini di costi:

    • Vengono utilizzate meno risorse per l'avvio e l'inizializzazione del cluster.
    • Vengono utilizzate più risorse per i cluster inutilizzati tra le esecuzioni della pipeline e dopo l'ultima esecuzione della pipeline.

Anche se è 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 incatenate 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 Configurazione calcolo della configurazione della pipeline di cui è stato eseguito il deployment o quando crei un nuovo profilo di calcolo:

  • Attiva Salta eliminazione cluster.
  • Il tempo di inattività massimo è il tempo fino al quale un cluster attende la pipeline successiva per riutilizzarlo. Il tempo di inattività massimo predefinito è 30 minuti. Per il tempo di inattività massimo, considera il costo rispetto alla disponibilità del cluster per il riutilizzo. Maggiore è il valore del tempo di inattività massimo, più cluster rimangono inattivi, pronti per un'esecuzione.

Risoluzione dei problemi: compatibilità delle versioni

Problema: la versione dell'ambiente Cloud Data Fusion potrebbe non essere compatibile con la versione del cluster Dataproc.

Consigliato: esegui l'upgrade alla versione più recente 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 assistenza 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.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**

* Le versioni 6.4 e successive di Cloud Data Fusion sono compatibili con le versioni supportate di Dataproc. A meno che non siano necessarie funzionalità specifiche del sistema operativo, la prassi consigliata è specificare la versione dell'immagine 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 riportate nella tabella precedente.

** Le versioni di Cloud Data Fusion da 6.1 a 6.6 sono compatibili con la versione 1.3 di Dataproc non supportata.

*** Sono stati rilevati alcuni problemi con questa versione dell'immagine. Questa versione dell'immagine Dataproc non è consigliata per l'uso in produzione.

Risoluzione dei problemi: il contenitore è uscito con un codice di uscita diverso da zero 3

Problema: non viene utilizzato un criterio di scalabilità automatica e i cluster Dataproc statici stanno riscontrando una pressione sulla memoria, causando un'eccezione di esaurimento della memoria nei log: Container exited with a non-zero exit code 3.

Consigliato: aumenta la memoria dell'executor.

Aumenta la memoria aggiungendo un task.executor.system.resources.memory parametro di runtime alla pipeline. L'esempio seguente di argomento di runtime imposta la memoria su 4096 MB:

"task.executor.system.resources.memory": 4096

Per ulteriori informazioni, consulta Dimensionamento del cluster.

Passaggi successivi