Video: Introduction to Hadoop Job Tracker | Edureka 2024
L'elaborazione MapReduce in Hadoop 1 viene gestita dai daemon JobTracker e TaskTracker. JobTracker mantiene una vista di tutte le risorse di elaborazione disponibili nel cluster Hadoop e, quando arrivano le richieste dell'applicazione, le pianifica e le distribuisce ai nodi TaskTracker per l'esecuzione.
Mentre le applicazioni sono in esecuzione, JobTracker riceve gli aggiornamenti di stato dai nodi TaskTracker per tracciare i loro progressi e, se necessario, coordinare la gestione di eventuali errori. JobTracker deve essere eseguito su un nodo master nel cluster Hadoop poiché coordina l'esecuzione di tutte le applicazioni MapReduce nel cluster, quindi è un servizio mission-critical.
Un'istanza del daemon TaskTracker viene eseguita su ogni nodo slave nel cluster Hadoop, il che significa che ogni nodo slave ha un servizio che lo lega all'elaborazione (TaskTracker) e all'archiviazione (DataNode), che consente a Hadoop di essere un sistema distribuito.
Come processo slave, TaskTracker riceve le richieste di elaborazione dal JobTracker. La sua responsabilità principale è quella di tenere traccia dell'esecuzione dei carichi di lavoro MapReduce che si verificano localmente sul proprio nodo slave e di inviare aggiornamenti di stato a JobTracker.
TaskTrackers gestisce le risorse di elaborazione su ciascun nodo slave sotto forma di slot di elaborazione: gli slot definiti per le attività della mappa e riducono le attività, per essere precisi. Il numero totale di mappe e riduzioni di slot indica il numero di attività di mappatura e riduzione che possono essere eseguite contemporaneamente sul nodo slave.
Quando si tratta di mettere a punto un cluster Hadoop, è fondamentale impostare il numero ottimale di mappe e ridurre gli slot. Il numero di slot deve essere accuratamente configurato in base alle risorse di memoria, disco e CPU disponibili su ciascun nodo slave. La memoria è la più critica di queste tre risorse dal punto di vista delle prestazioni. In quanto tale, il numero totale di aree di attività deve essere bilanciato con la quantità massima di memoria allocata alla dimensione dell'heap Java.
Tenere presente che ogni mappa e attività di riduzione genera la propria Java virtual machine (JVM) e che l'heap rappresenta la quantità di memoria allocata per ogni JVM. Anche il rapporto tra slot di mappa per ridurre gli slot è una considerazione importante.
Ad esempio, se si dispone di troppe slot di mappa e non di slot di riduzione sufficienti per i carichi di lavoro, gli slot delle mappe tenderanno a rimanere inattivi, mentre i lavori attendono che gli spazi ridotti diventino disponibili.
Distinti gruppi di slot sono definiti per le attività della mappa e riducono le attività perché utilizzano risorse di calcolo in modo molto diverso.Le attività della mappa vengono assegnate in base alla località dei dati e dipendono in gran parte dall'I / O del disco e dalla CPU. Le attività ridotte vengono assegnate in base alla disponibilità, non alla località e dipendono in gran parte dalla larghezza di banda della rete perché devono ricevere l'output dalle attività della mappa.