Configurazione del cluster Dataproc

In Cloud Data Fusion, la configurazione del cluster si riferisce alla definizione Le pipeline di elaborazione dati utilizzano risorse di calcolo durante l'esecuzione di Spark su Dataproc. Questa pagina descrive gli approcci principali alla configurazione del cluster.

Cluster temporanei predefiniti (consigliato)

L'utilizzo dei cluster predefiniti è l'approccio consigliato per pipeline di 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.
    • Convenienza: paghi solo per le risorse utilizzate durante dell'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 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 allo smantellamento 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.
  • Ora di creazione del cluster: 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 per i cluster statici

Se scegli di usare cluster statici, Cloud Data Fusion offre 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 zona Google Cloud 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 controllare i limiti di memoria fisica e di terminare i container se vanno oltre 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 su un cluster Dataproc esistente.

Riutilizzo dei cluster

Puoi riutilizzare i cluster Dataproc tra le esecuzioni per migliorare di elaborazione. Il riutilizzo dei cluster viene implementato in un modello simile alla connessione o il pooling di 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. Simile al normale cluster temporaneo di provisioning, un cluster esegue una singola pipeline eseguita alla volta. Un cluster viene riutilizzato solo se è inattivo.
  • Se abiliti il riutilizzo del cluster per tutte le esecuzioni, il numero necessario i cluster per elaborare tutte le tue esecuzioni verranno creati in base alle esigenze. Come per il provisioning Dataproc temporaneo, non è possibile controllare direttamente il numero di cluster creati. Puoi comunque utilizzare i preventivi 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 diverse pipeline non appena queste pipeline usano lo stesso profilo e condividono le stesse impostazioni di 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 dei cluster come l'etichettatura dei cluster.

  • Quando il riutilizzo dei cluster è abilitato, esistono due considerazioni principali sui costi:

    • Vengono utilizzate meno risorse per l'avvio e l'inizializzazione del cluster.
    • Vengono utilizzate più risorse per mantenere inattivi i cluster 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:

  • Abilita Ignora 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, valuta 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 del tuo ambiente Cloud Data Fusion potrebbe non sarà 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 né assistenza per i cluster creati con queste versioni. Sebbene sia possibile continuare a eseguire un cluster è stata creata con una versione non supportata, consigliamo di sostituirla con una creato con un versione supportata.

Versione Cloud Data Fusion Versione Dataproc
6.10.1.1 2.2, 2.1 e 2.0 *
6.10 2.1, 2.0 *
6,9 2,1, 2,0 e 1,5 *
6,7-6,8 2,0, 1,5 *
6,4-6,6 2.0 *, 1.3 **
6.1-6.3 1,3**

* Cloud Data Fusion 6.4 e versioni successive sono compatibili con di Dataproc supportate. A meno che non siano specifiche funzionalità del sistema operativo sono necessari, la prassi consigliata è di specificare Versione immagine major.minor.
Per specificare la versione del sistema operativo utilizzata nel cluster Dataproc, deve essere compatibile con uno dei carichi di lavoro Dataproc supportati per Cloud Data Fusion 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.

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 il I cluster Dataproc stanno incontrando pressione di memoria e ciò causa un memoria insufficiente verrà visualizzata nei log: Container exited with a non-zero exit code 3.

Consigliato: aumenta la memoria dell'esecutore.

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

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

Per ulteriori informazioni, vedi Dimensionamento dei cluster.

Passaggi successivi