Sommario:
Video: YouTube Ad sense data analysis using MapReduce an POC 2024
Per comprendere appieno le funzionalità di Hadoop MapReduce, è importante distinguere tra MapReduce (l'algoritmo) e un implementazione di MapReduce. Hadoop MapReduce è un'implementazione dell'algoritmo sviluppato e gestito dal progetto Apache Hadoop.
È utile pensare a questa implementazione come un motore MapReduce, perché è esattamente come funziona. Fornisci input (carburante), il motore converte l'input in output in modo rapido ed efficiente e ottieni le risposte che ti servono.
Hadoop MapReduce include diverse fasi, ognuna con un importante insieme di operazioni che aiutano a raggiungere il tuo obiettivo di ottenere le risposte necessarie dai big data. Il processo inizia con una richiesta dell'utente per eseguire un programma MapReduce e continua fino a quando i risultati non vengono riscritti su HDFS.
HDFS e MapReduce eseguono il lavoro sui nodi in un cluster ospitato su rack di server commodity. Per semplificare la discussione, il diagramma mostra solo due nodi.
Prepara i big data
Quando un client richiede l'esecuzione di un programma MapReduce, il primo passo è individuare e leggere il file di input contenente i dati grezzi. Il formato del file è completamente arbitrario, ma i dati devono essere convertiti in qualcosa che il programma può elaborare. Questa è la funzione di InputFormat e RecordReader. InputFormat decide in che modo il file verrà suddiviso in parti più piccole per l'elaborazione utilizzando una funzione chiamata InputSplit.
Assegna quindi un RecordReader per trasformare i dati grezzi da elaborare dalla mappa. Diversi tipi di RecordReader sono forniti con Hadoop, offrendo un'ampia varietà di opzioni di conversione. Questa funzionalità è uno dei modi in cui Hadoop gestisce l'enorme varietà di tipi di dati trovati nei problemi dei big data.
Inizia la mappa dei big data
I tuoi dati ora sono in una forma accettabile da mappare. Per ogni coppia di input, viene richiamata un'istanza distinta di mappa per elaborare i dati. Ma cosa fa con l'output processato e come puoi tenerne traccia?
La mappa ha due funzionalità aggiuntive per rispondere alle domande. Poiché la mappa e la riduzione devono collaborare per elaborare i dati, il programma deve raccogliere l'output dai mappatori indipendenti e passarlo ai riduttori. Questa attività viene eseguita da un OutputCollector. Una funzione Reporter fornisce anche le informazioni raccolte dalle attività della mappa in modo da sapere quando o se le attività della mappa sono complete.
Tutto questo lavoro viene eseguito su più nodi nel cluster Hadoop contemporaneamente.Potresti avere casi in cui l'output di determinati processi di mappatura deve essere accumulato prima che i riduttori possano iniziare. Oppure, alcuni dei risultati intermedi potrebbero dover essere elaborati prima della riduzione.
Inoltre, alcuni di questi output potrebbero trovarsi su un nodo diverso dal nodo in cui verranno eseguiti i riduttori per quell'output specifico. La raccolta e il mescolamento dei risultati intermedi sono eseguiti da un partizionatore e un ordinamento. Le attività della mappa forniranno i risultati a una partizione specifica come input per ridurre le attività.
Dopo che tutte le attività della mappa sono state completate, i risultati intermedi vengono raccolti nella partizione e si verifica uno shuffling, ordinando l'output per l'elaborazione ottimale riducendo.
Riduci e combina per i big data
Per ogni coppia di output, viene chiamato riduci per eseguire il suo compito. In modo simile alla mappa, ridurre raccoglie il suo output mentre tutte le attività sono in fase di elaborazione. La riduzione non può iniziare finché non viene eseguita tutta la mappatura. L'output di reduce è anche una chiave e un valore. Sebbene sia necessario per ridurre a svolgere il proprio lavoro, potrebbe non essere il formato di output più efficace per la propria applicazione.
Hadoop fornisce una funzione OutputFormat e funziona molto come InputFormat. OutputFormat accetta la coppia chiave-valore e organizza l'output per la scrittura su HDFS. L'ultimo compito è di scrivere effettivamente i dati su HDFS. Questo viene eseguito da RecordWriter e si comporta in modo simile a RecordReader, tranne che al contrario. Prende i dati OutputFormat e li scrive su HDFS nella forma necessaria per i requisiti del programma.
Il coordinamento di tutte queste attività è stato gestito nelle versioni precedenti di Hadoop da un programmatore di lavoro. Questo programma di pianificazione era rudimentale e, poiché il mix di posti di lavoro cambiava e cresceva, era chiaro che era necessario un approccio diverso. L'insufficienza primaria del vecchio programma di pianificazione era la mancanza di gestione delle risorse. L'ultima versione di Hadoop ha questa nuova funzionalità.
Hadoop MapReduce è il cuore del sistema Hadoop. Fornisce tutte le funzionalità necessarie per rompere i big data in blocchi gestibili, elaborare i dati in parallelo sul cluster distribuito e quindi rendere i dati disponibili per il consumo dell'utente o l'elaborazione aggiuntiva. E tutto questo funziona in modo altamente resiliente e tollerante ai guasti. Questo è solo l'inizio.