Panoramica del rendimento della pipeline

Questa pagina illustra la terminologia e i concetti di base dell'elaborazione delle pipeline in Cloud Data Fusion.

Le prestazioni della pipeline dipendono dai seguenti aspetti:

  • Le dimensioni e le caratteristiche dei dati
  • La struttura della pipeline
  • Dimensionamento dei cluster
  • Plug-in utilizzati dalla pipeline Cloud Data Fusion

Terminologia di elaborazione delle pipeline in Cloud Data Fusion

La seguente terminologia si applica all'elaborazione della pipeline in Cloud Data Fusion.

Tipo di macchina
Tipo di macchine virtuali (VM) utilizzate (CPU, memoria).
Cluster
Un gruppo di VM che lavorano insieme per gestire attività di elaborazione dati su larga scala.
Nodi master e worker
Macchine fisiche o virtuali in grado di eseguire l'elaborazione. I nodi master di solito coordinano il lavoro. I nodi worker eseguono gli esecutori che elaborano i dati. Hanno caratteristiche della macchina (quantità di memoria e numero di vCore disponibili per i processi).
vCore, core o CPU
Una risorsa che esegue calcoli. In genere, i nodi forniscono una certa quantità di core e gli esecutori richiedono una o più CPU. Trova il giusto equilibrio con la memoria, altrimenti potresti sottoutilizzare il cluster.
Driver
Una singola VM che funge da coordinatore centrale per l'intero cluster. Gestisce le attività, pianifica il lavoro sui nodi worker e monitora l'avanzamento dei job.
Esecutori
Più VM che eseguono le attività di elaborazione dei dati effettive, come indicato dal driver. I dati vengono partizionati e distribuiti tra questi executor per l'elaborazione parallela. Per utilizzare tutti gli esecutori, devi avere un numero sufficiente di suddivisioni.
Suddivisioni o partizioni
Un set di dati viene suddiviso in split (partizioni con altri nomi) per elaborare i dati in parallelo. Se non hai suddivisioni sufficienti, non puoi utilizzare l'intero cluster.

Panoramica dell'ottimizzazione delle prestazioni

Le pipeline vengono eseguite su cluster di macchine. Quando scegli di eseguire le pipeline Cloud Data Fusion sui cluster Dataproc (che è il provisioning consigliato), YARN (Yet Another Resource Negotiator) viene utilizzato in background. Dataproc utilizza YARN per la gestione delle risorse all'interno del cluster. Quando invii una pipeline Cloud Data Fusion a un cluster Dataproc, il job Apache Spark sottostante sfrutta YARN per l'allocazione delle risorse e la pianificazione delle attività.

Un cluster è costituito da nodi master e worker. I nodi master sono generalmente responsabili del coordinamento del lavoro, mentre i nodi worker eseguono il lavoro effettivo. I cluster di solito hanno un numero ridotto di nodi master (uno o tre) e un gran numero di worker. YARN viene utilizzato come sistema di coordinamento del lavoro. YARN esegue un servizio Resource Manager sul nodo master e un servizio Node Manager su ogni nodo worker. I gestori delle risorse si coordinano tra tutti i gestori dei nodi per determinare dove creare ed eseguire i container nel cluster.

Gestori risorse e gestori nodi YARN

Su ogni nodo worker, Node Manager riserva una parte della memoria e delle CPU della macchina disponibili per l'esecuzione dei container YARN. Ad esempio, in un cluster Dataproc, se i nodi worker sono VM n1-standard-4 (4 CPU, 15 GB di memoria), ogni gestore dei nodi riserva 4 CPU e 12 GB di memoria per l'esecuzione dei contenitori YARN. I restanti 3 GB di memoria vengono riservati agli altri servizi Hadoop in esecuzione sul nodo.

Quando una pipeline viene eseguita su YARN, viene lanciato un driver di flusso di lavoro della pipeline, un driver Spark e molti executor Spark in Dataproc.

Driver ed esecutori

Il driver del flusso di lavoro è responsabile dell'avvio di uno o più programmi Spark che costituiscono una pipeline. In genere, il driver del flusso di lavoro non fa molto lavoro. Ogni programma Spark esegue un singolo driver Spark e più executor Spark. Il driver coordina il lavoro tra gli esecutori, ma di solito non svolge alcun lavoro effettivo. La maggior parte del lavoro effettivo viene eseguita dagli esecutori Spark.

Passaggi successivi