Cos'è MapReduce in Hadoop? Grandi dati Architectura
Cos'è MapReduce in Hadoop?
MapReduce è un framework software e un modello di programmazione utilizzato per elaborare enormi quantità di dati. MapReduce Il programma funziona in due fasi, vale a dire Map e Reduce. Le attività di Map si occupano della suddivisione e della mappatura.ping dei dati mentre le attività di riduzione mescolano e riducono i dati.
Hadoop è in grado di eseguire programmi MapReduce scritti in vari linguaggi: Java, Rubino, Pythone C++I programmi di Map Reduce nel cloud computing sono di natura parallela, pertanto sono molto utili per eseguire analisi di dati su larga scala utilizzando più macchine nel cluster.
L'input per ciascuna fase è valore-chiave coppie. Inoltre, ogni programmatore deve specificare due funzioni: funzione mappa e ridurre la funzione.
MapReduce ArchiLa tecnologia dei Big Data spiegata con l'esempio
L'intero processo passa attraverso quattro fasi di esecuzione, vale a dire suddivisione, mappaturaping, mescolando e riducendo.
Ora in questo tutorial di MapReduce, capiamo con un esempio di MapReduce:
Considera di avere i seguenti dati di input per MapReduce in Programma Big Data
Welcome to Hadoop Class Hadoop is good Hadoop is bad

L'output finale dell'attività MapReduce è
| male | 1 |
| Classe | 1 |
| buono | 1 |
| Hadoop | 3 |
| is | 2 |
| a | 1 |
| Welcome | 1 |
I dati attraversano le seguenti fasi di MapReduce in Big Data
Divisioni di ingresso:
Un input per un lavoro MapReduce in Big Data è diviso in parti di dimensioni fisse chiamate suddivisioni dell'ingresso La suddivisione dell'input è una parte dell'input consumata da una singola mappa
Mappaping
Questa è la primissima fase nell'esecuzione di un programma map-reduce. In questa fase i dati in ogni split vengono passati a una mappaping funzione per produrre valori di output. Nel nostro esempio, un lavoro di mappaturaping la fase consiste nel contare il numero di occorrenze di ciascuna parola dalle suddivisioni di input (maggiori dettagli sulla suddivisione di input sono forniti di seguito) e preparare un elenco nella forma di
Mischiare le carte
Questa fase consuma l'output di Mapping fase. Il suo compito è consolidare i record rilevanti da Mapping Uscita di fase. Nel nostro esempio, le stesse parole sono raggruppate insieme alla rispettiva frequenza.
Ridurre
In questa fase, i valori di output della fase di Shuffle vengono aggregati. Questa fase combina i valori della fase Shuffle e restituisce un singolo valore di output. In breve, questa fase riassume il dataset completo.
Nel nostro esempio, questa fase aggrega i valori della fase Shuffle, ovvero calcola le occorrenze totali di ciascuna parola.
MapReduce Archistruttura spiegata in dettaglio
- Viene creata un'attività di mappa per ciascuna suddivisione che esegue quindi la funzione di mappa per ciascun record nella suddivisione.
- È sempre vantaggioso avere più suddivisioni poiché il tempo impiegato per elaborare una suddivisione è ridotto rispetto al tempo impiegato per l'elaborazione dell'intero input. Quando le suddivisioni sono più piccole, è meglio che l'elaborazione venga bilanciata con il carico poiché stiamo elaborando le suddivisioni in parallelo.
- Tuttavia, non è nemmeno desiderabile avere spaccature di dimensioni troppo piccole. Quando le suddivisioni sono troppo piccole, il sovraccarico derivante dalla gestione delle suddivisioni e dalla creazione di attività sulla mappa inizia a dominare il tempo totale di esecuzione del lavoro.
- Per la maggior parte dei lavori, è meglio dividere la dimensione in modo uguale alla dimensione di un blocco HDFS (che è 64 MB, per impostazione predefinita).
- L'esecuzione delle attività della mappa comporta la scrittura dell'output su un disco locale sul rispettivo nodo e non su HDFS.
- Il motivo per scegliere il disco locale rispetto a HDFS è evitare la replica che avviene in caso di operazione di archiviazione HDFS.
- L'output della mappa è un output intermedio che viene elaborato riducendo le attività per produrre l'output finale.
- Una volta completato il lavoro, l'output della mappa può essere buttato via. Pertanto, archiviarlo in HDFS con la replica diventa eccessivo.
- In caso di guasto del nodo, prima che l'output della mappa venga consumato dall'attività di riduzione, Hadoop esegue nuovamente l'attività della mappa su un altro nodo e ricrea l'output della mappa.
- Ridurre l'attività non funziona sul concetto di località dei dati. Un output di ogni attività di mappatura viene inviato all'attività di riduzione. L'output della mappa viene trasferito alla macchina su cui è in esecuzione l'attività di riduzione.
- Su questa macchina, l'output viene unito e quindi passato alla funzione di riduzione definita dall'utente.
- A differenza dell'output della mappa, l'output di riduzione viene archiviato in HDFS (la prima replica viene archiviata sul nodo locale e le altre repliche vengono archiviate su nodi off-rack). Quindi, scrivendo l'output ridotto
Come MapReduce organizza il lavoro?
Ora in questo tutorial di MapReduce impareremo come funziona MapReduce
Hadoop divide il lavoro in compiti. Esistono due tipi di compiti:
- Attività sulla mappa (Dividsioni e mappaping)
- Ridurre i compiti (Mischia, Riduci)
come menzionato sopra.
Il processo di esecuzione completo (esecuzione delle attività Mappa e Riduci, entrambi) è controllato da due tipi di entità chiamate a
- Lavorotracker: Si comporta come a Mastercard (responsabile della completa esecuzione del lavoro inviato)
- Attività multiple Trackers: Agisce come schiavi, ognuno di loro esegue il lavoro
Per ogni lavoro inviato per l'esecuzione nel sistema, ce n'è uno Lavorotracker che risiede su Nomenodo e ci sono attività multipletrackers su cui risiedono Nodo dati.

- Un lavoro è suddiviso in più attività che vengono quindi eseguite su più nodi dati in un cluster.
- È responsabilità del lavoro tracker per coordinare l'attività pianificando l'esecuzione di attività su diversi nodi dati.
- L'esecuzione del singolo compito deve quindi essere gestita per compito tracker, che risiede su ogni nodo dati che esegue parte del lavoro.
- Task tracLa responsabilità di ker è di inviare il rapporto di avanzamento al lavoro tracker.
- Inoltre, compito tracker invia periodicamente 'battito cardiaco' segnale al lavorotracker in modo da informarlo dello stato attuale del sistema.
- Quindi lavoro tracker mantiene track dell'avanzamento complessivo di ogni lavoro. In caso di errore del compito, il lavoro tracker può riprogrammarlo su un'attività diversa tracker.
