Che cos'è MapReduce?
Il framework di programmazione MapReduce viene utilizzato per eseguire elaborazioni distribuite e parallele con grandi set di dati in un ambiente distribuito. Mappa e Riduci sono i due compiti distinti di un programma di riduzione della mappa. Inizialmente nella fase della mappa, i dati vengono letti e da esso vengono generate coppie chiave-valore. Quindi queste coppie chiave-valore vengono immesse in attività di riduzione che aggrega i dati delle coppie chiave-valore in un insieme più piccolo di valori che producono l'output finale. Pertanto, un'attività di riduzione viene sempre implementata dopo che un'attività di mappa è stata completata. È molto semplice ridimensionare l'elaborazione dei dati su più nodi di elaborazione.
Vi sono in particolare tre fasi del programma:
- Stage di mappa
- Shuffle Stage
- Ridurre fase
Esempio :
Wordcount problem-
Supponiamo di seguito i dati di input:
- Mike Jon Jake
- Paul Paul Jake
- Mike Paul Jon
1. I dati sopra riportati sono suddivisi in tre suddivisioni di input come di seguito:
- Mike Jon Jake
- Paul Paul Jake
- Mike Paul Jon
2. Quindi questi dati vengono inseriti nella fase successiva chiamata fase di mappatura.
Quindi, per la prima riga (Mike Jon Jake) abbiamo 3 coppie chiave-valore: Mike, 1; Jon, 1; Jake, 1.
Di seguito è riportato il risultato nella fase di mappatura:
- Mike, 1
Jon 1
Jake, 1 - Paul, 1
Paul, 1
Jake, 1 - Mike, 1
Paul, 1
Jon 1
3. I dati sopra riportati vengono quindi immessi nella fase successiva denominata fase di smistamento e shuffle.
In questa fase, i dati vengono raggruppati in chiavi univoche e vengono ordinati. Di seguito è riportato il risultato nella fase di smistamento e shuffle:
- Jake, (1, 1)
- Jon, (1, 1)
- Mike, (1, 1)
- Paul, (1, 1, 1)
4. I dati sopra riportati vengono quindi immessi nella fase successiva denominata fase di riduzione.
Qui tutti i valori chiave vengono aggregati e viene conteggiato il numero di 1. Di seguito è riportato il risultato nella fase di riduzione:
- Jake, 2
- Jon, 2
- Mike, 2
- Paul, 3
Vantaggi di MapReduce:
Qui apprendiamo alcuni importanti vantaggi di MapReduce Programming Framework,
1. Scalabilità
Hadoop è una piattaforma altamente scalabile ed è in gran parte dovuta alla sua capacità di archiviare e distribuire grandi set di dati su molti server. I server qui utilizzati sono piuttosto economici e possono operare in parallelo. La potenza di elaborazione del sistema può essere migliorata con l'aggiunta di più server. I tradizionali sistemi di gestione di database relazionali o RDBMS non erano in grado di scalare per elaborare enormi set di dati.
2. Flessibilità
Il modello di programmazione MapReduce di Hadoop offre flessibilità per elaborare la struttura o i dati non strutturati da varie organizzazioni aziendali che possono utilizzare i dati e possono operare su diversi tipi di dati. Pertanto, possono generare un valore aziendale da quei dati che sono significativi e utili per le organizzazioni aziendali per l'analisi. Indipendentemente dalla fonte di dati che si tratti di social media, clickstream, e-mail, ecc. Hadoop offre supporto per molte lingue utilizzate per l'elaborazione dei dati. Insieme a tutto ciò, la programmazione Hadoop MapReduce consente molte applicazioni come analisi di marketing, sistema di raccomandazioni, data warehouse e rilevamento di frodi.
3. Sicurezza e autenticazione
Se una persona esterna ottiene l'accesso a tutti i dati dell'organizzazione e può manipolare più petabyte di dati, ciò può arrecare gravi danni in termini di operazioni commerciali in corso all'organizzazione aziendale. Questo rischio è affrontato dal modello di programmazione MapReduce lavorando con hdfs e HBase che consente un'elevata sicurezza consentendo solo all'utente autorizzato di operare sui dati memorizzati nel sistema.
4. Soluzione economica
Tale sistema è altamente scalabile ed è una soluzione molto conveniente per un modello di business che deve archiviare dati che stanno crescendo esponenzialmente in linea con le esigenze attuali. Nel caso dei vecchi sistemi di gestione di database relazionali tradizionali, non era così facile elaborare i dati come con il sistema Hadoop in termini di scalabilità. In tali casi, l'azienda è stata costretta a ridimensionare i dati e ad implementare ulteriormente la classificazione sulla base di ipotesi su come alcuni dati potrebbero essere preziosi per l'organizzazione e quindi rimuovere i dati grezzi. Qui viene in soccorso l'architettura scalabile di Hadoop con la programmazione MapReduce.
5. Veloce
File system distribuito Hadoop HDFS è una funzionalità chiave utilizzata in Hadoop che fondamentalmente implementa un sistema di mappatura per individuare i dati in un cluster. La programmazione MapReduce è lo strumento utilizzato per l'elaborazione dei dati e si trova anche nello stesso server consentendo un'elaborazione più rapida dei dati. Hadoop MapReduce elabora grandi volumi di dati non strutturati o semi-strutturati in meno tempo.
6. Un semplice modello di programmazione
La programmazione di MapReduce si basa su un modello di programmazione molto semplice che sostanzialmente consente ai programmatori di sviluppare un programma MapReduce in grado di gestire molte più attività con maggiore facilità ed efficienza. Il modello di programmazione MapReduce è scritto usando il linguaggio Java è molto popolare e molto facile da imparare. È facile per le persone imparare la programmazione Java e progettare un modello di elaborazione dei dati che soddisfi le loro esigenze aziendali.
7. Elaborazione parallela
Il modello di programmazione divide i compiti in modo da consentire l'esecuzione del compito indipendente in parallelo. Quindi questa elaborazione parallela rende più facile per i processi assumere ciascuna delle attività, il che aiuta a eseguire il programma in molto meno tempo.
8. Disponibilità e natura resiliente
Il modello di programmazione Hadoop MapReduce elabora i dati inviando i dati a un singolo nodo e inoltra la stessa serie di dati agli altri nodi che risiedono nella rete. Di conseguenza, in caso di errore in un nodo particolare, la stessa copia dei dati è ancora disponibile sugli altri nodi che possono essere utilizzati ogni volta che è necessario per garantire la disponibilità dei dati.
In questo modo, Hadoop è tollerante ai guasti. Questa è una funzionalità unica offerta in Hadoop MapReduce che è in grado di riconoscere rapidamente l'errore e applicare una soluzione rapida per una soluzione di ripristino automatico.
Ci sono molte aziende in tutto il mondo che utilizzano la riduzione delle mappe come Facebook, Yahoo, ecc.
Conclusione - Che cos'è MapReduce
La riduzione delle mappe ha una grande capacità in termini di elaborazione di dati di grandi dimensioni rispetto ai sistemi RDBMS tradizionali. Molte organizzazioni hanno già realizzato il suo potenziale e stanno passando a questa nuova tecnologia. Chiaramente, la riduzione delle mappe ha molto tempo da percorrere in una grande piattaforma di elaborazione dei dati.
Articoli consigliati
Questa è stata una guida a Cos'è MapReduce. Qui abbiamo discusso il concetto di base, esempi e vantaggi di MapReduce. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -
- Che cos'è JavaScript?
- Domande di intervista su MapReduce
- Che cos'è Python
- Come funziona MapReduce
- Cosa sono i Big Data e Hadoop