2009-04-01 15 views

risposta

5

Per problemi che richiedono elaborazione e generazione di set di dati di grandi dimensioni. Supponiamo di eseguire una query di generazione degli interessi su tutti gli account di una banca. Supponiamo di elaborare i dati di audit per tutte le transazioni avvenute l'anno scorso in una banca. Il miglior caso d'uso è di Google - generazione dell'indice di ricerca per il motore di ricerca di Google.

3

Tutto ciò che comporta operazioni su un grande insieme di dati, in cui il problema può essere suddiviso in sub-problemi indipendenti più piccoli i cui risultati possono essere aggregati per produrre la risposta al problema più grande.

Un esempio banale sarebbe il calcolo della somma di un enorme insieme di numeri. Hai diviso il set in set più piccoli, calcoli le somme di quei set più piccoli in parallelo (il che può comportare la suddivisione in set ancora più piccoli), quindi sommi questi risultati per raggiungere la risposta finale.

5

Molti problemi che sono "imbarazzanti paralleli" (ottima frase!) Possono utilizzare MapReduce. http://en.wikipedia.org/wiki/Embarrassingly_parallel

Da questo articolo .... http://www.businessweek.com/magazine/content/07_52/b4064048925836.htm ...

Doug Cutting, fondatore di Hadoop (un'implementazione open source di MapReduce) dice ... “Facebook utilizza Hadoop per analizzare il comportamento degli utenti e l'efficacia degli annunci sul sito "

e ..." il team tecnico del New York Times ha affittato la potenza di calcolo sul cloud di Amazon e ha utilizzato Hadoop per convertire 11 milioni di articoli archiviati, risalenti al 1851, al digitale e alla ricerca documenti. Hanno trasformato in un solo giorno un lavoro che altrimenti avrebbe richiesto en mesi “.

9

In Map-Reduce for Machine Learning on Multicore Chu et al descrivono 'algoritmi che si adattano al modello di query di statistica può essere scritto in una certa‘modulo somma’, che permette loro di essere facilmente parallelizzati su computer multicore.' Loro specificamente implementano 10 algoritmi tra cui ad es regressione lineare ponderata, k-Means, Naive Bayes e SVM, utilizzando una struttura di riduzione della mappa.

Il progetto Apache Mahout ha rilasciato una recente implementazione di Hadoop (Java) di alcuni metodi basati sulle idee di questo articolo.

2

Puoi anche guardare lo videos @ Google, li sto guardando io stesso e li trovo molto istruttivi.

3

La risposta sta proprio nel nome dell'algoritmo. MapReduce non è un lavoro di programmazione parallela di tipo generico o un quadro di esecuzione batch come suggeriscono alcune risposte. Map Reduce è davvero utile quando grandi set di dati che devono essere elaborati (fase di mappatura) e derivano determinati attributi da lì, e quindi devono essere riassunti su quegli attributi derivati ​​(fase di riduzione).

1

Questa domanda è stato chiesto prima del tempo. Dal 2009 c'è stata in realtà un'analisi teorica dei calcoli di MapReduce. Questo documento del 2010 di Howard Karloff et al. formalizza MapReduce come classe di complessità nello stesso modo in cui i teorici studiano P e NP.Dimostrano alcune relazioni tra MapReduce e una classe chiamata NC (che può essere considerata o come macchine parallele con memoria condivisa o una determinata classe di circuiti limitati). Ma il pezzo principale di lavoro sono le loro definizioni formali.

Problemi correlati