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 lavoro del programma in due fasi, vale a dire Map e Reduce. Le attività Mappa si occupano della suddivisione e della mappatura dei dati mentre le attività Riduci mescolano e riducono i dati.

Hadoop è in grado di eseguire programmi MapReduce scritti in vari linguaggi: Java, Rubino, Python e 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: divisione, mappatura, mescolamento e riduzione.

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
MapReduce Architectura
MapReduce Architectura

L'output finale dell'attività MapReduce è

male 1
Classe 1
buono 1
Hadoop 3
is 2
a 1
Benvenuta 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

Mappatura

Questa è la primissima fase nell'esecuzione del programma map-reduce. In questa fase i dati in ogni split vengono passati a una funzione di mappatura per produrre valori di output. Nel nostro esempio, un lavoro della fase di mappatura è contare un numero di occorrenze di ogni parola dagli split di input (ulteriori dettagli su input-split sono forniti di seguito) e preparare un elenco sotto forma di

Mischiare le carte

Questa fase consuma l'output della fase di mappatura. Il suo compito è consolidare i record rilevanti provenienti dall'output della fase di mappatura. 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:

  1. Attività sulla mappa (Split e mappatura)
  2. 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

  1. Jobtracker: Si comporta come a Mastercard (responsabile della completa esecuzione del lavoro inviato)
  2. Tracker di attività multiple: Agisce come schiavi, ognuno di loro esegue il lavoro

Per ogni lavoro inviato per l'esecuzione nel sistema, ce n'è uno Jobtracker che risiede su Nomenodo e ci sono più tasktracker su cui risiedono Nodo dati.

Come funziona Hadoop MapReduce
Come funziona Hadoop MapReduce
  • Un lavoro è suddiviso in più attività che vengono quindi eseguite su più nodi dati in un cluster.
  • È responsabilità del job tracker coordinare l'attività pianificando l'esecuzione delle attività su diversi nodi di dati.
  • L'esecuzione delle singole attività è quindi gestita dal task tracker, che risiede su ogni nodo dati che esegue parte del lavoro.
  • La responsabilità del task tracker è inviare il rapporto sullo stato di avanzamento al job tracker.
  • Inoltre, il tracker delle attività invia periodicamente 'battito cardiaco' segnale al Jobtracker in modo da notificargli lo stato attuale del sistema.
  • In questo modo il job tracker tiene traccia dello stato di avanzamento complessivo di ciascun lavoro. In caso di fallimento dell'attività, il job tracker può riprogrammarla su un diverso task tracker.

Newsletter quotidiana di Guru99

Inizia la giornata con le ultime e più importanti notizie sull'intelligenza artificiale, pubblicate in questo momento.