MapReduce è un framewrok software brevettato e introdotto da Google per supportare la computazione distribuita su grandi quantità di dati in cluster di computer. Il framework è ispirato alle funzioni map e reduce usate nella programmazione funzionale, sebbene il loro scopo nel framework MapReduce non è lo stesso che nella forma originale. Le librerie MapReduce sono scritte in C++, C#, Erlang, Java, Ocaml, Perl, Python, Ruby, F# e altri linguaggi di programmazione.

Panoramica

Passo "Map": il nodo principale prende l'input, lo partizioni in sotto-problemi più piccoli, e li distribuisce ai nodi operativi. un nodo operativo potrebbe fare questo nuovamente, portando a una struttura ad albero multi-livello. Il nodo operativo processa i problemi più piccoli, e restituisce la risposta al suo nodo principale.

Passo "Reduce": Il nodo principale una volta prese le risposte di tutti i sotto-problemi le combina per ottenere una risposta o uscita, la risposta al problema che si tenta di risolvere.

Il vantaggio della Map Reduce è che permette una processazione distribuita delle operazioni di mappamento e riduzione. Fornendo ogni operazione di map indipendente dalle altre, tutte le map possono essere eseguite in parallelo - sebbene nella pratica ciò è limitato dalla sorgente dati e/o dal numero di CPU vicine a quel dato. Alla stessa maniera, una serie di "riduttori" può eseguire la fase di riduzione - tutto quello che è richiesto è che le uscite della map la quale condivide la stessa chiave sia presentata allo stesso riduttore, allo stesso tempo.

Mentre questo processo può spesso apparire inefficiente comparato agli algoritmi che sono più sequenziali, MapReduce può essere applicato significativamente a più grandi quantità di dati chei server possono gestire comodamente - una grande "fattoria" di server può usare MapReduce per ordinare petabyte di dati in sole poche ore.

Il parallelismo offre anche la possibilità di recuperare dati dal parziale fallimento di server o di dispositivi di archiviazione durante l'operazione se qualche map o reduce fallisce il lavoro può essere riprogettato, assumento che i dati in entrata siano ancora disponibili.

Voci correlate

Collegamenti esterni

Articoli
Libri
Educational courses