2009-04-01 14 views

Odpowiedz

5

Dla problemów wymagających przetwarzania i generowania dużych zestawów danych. Powiedz, że chcesz uruchomić zapytanie generujące zainteresowanie na wszystkich kontach trzymanych przez bank. Powiedz przetwarzanie danych audytu dla wszystkich transakcji, które miały miejsce w ubiegłym roku w banku. Najlepszym przypadkiem jest Google - generowanie indeksu wyszukiwania dla wyszukiwarki Google.

3

Wszystko, co wymaga operacji na dużym zestawie danych, gdzie problem można podzielić na mniejsze niezależne pod-problemy, których wyniki można następnie zebrać, aby uzyskać odpowiedź na większy problem.

Trywialnym przykładem byłoby obliczenie sumy ogromnego zestawu liczb. Dzielisz zestaw na mniejsze zestawy, równolegle obliczysz sumy tych mniejszych zestawów (co może wiązać się z podzieleniem ich na jeszcze mniejsze zestawy), a następnie sumujesz te wyniki, aby osiągnąć ostateczną odpowiedź.

5

Wiele problemów, które są "żenująco paralelne" (świetna fraza!) Może używać MapReduce. http://en.wikipedia.org/wiki/Embarrassingly_parallel

z tego artykułu .... http://www.businessweek.com/magazine/content/07_52/b4064048925836.htm ...

Doug Cięcie, założyciel Hadoop (implementacja open source MapReduce) mówi ... „Facebook wykorzystuje Hadoop do analizy zachowań użytkowników i Skuteczność reklam na stronie "

i ..." zespół techników z The New York Times wynajął moc obliczeniową w chmurze Amazona i wykorzystał Hadoop do przekształcenia 11 milionów zarchiwizowanych artykułów z 1851 r. na cyfrowe i wyszukiwane Obrócili się w ciągu jednego dnia w pracę, której inaczej by nie podjęli pl miesięcy.”

9

W Map-Reduce for Machine Learning on Multicore Chu et al opisać«algorytmy, które pasują model zapytań statystyczne mogą być napisane w pewnej «formie sumowania», co pozwala im łatwo parallelized na komputerach wielordzeniowych.»Oni specjalnie wdrożenia 10 algorytmów, w tym np ważoną regresję liniową, k-średnie, Naive Bayes i SVM, stosując framework map-reduce.

Projekt Apache Mahout opublikował ostatnio implementację Hadoop (Java) niektórych metod opartych na ideach z tego artykułu.

2

Możesz także obejrzeć videos @ Google, sam je oglądam i uważam, że są bardzo pouczające.

3

Odpowiedź leży naprawdę w nazwie algorytmu. MapReduce nie jest ogólnym programowaniem równoległym ani strukturą wykonywania partii, jak sugerują niektóre z odpowiedzi. Zmniejszenie mapy jest naprawdę przydatne, gdy zbiory danych, które wymagają przetworzenia (Faza odwzorowywania), wyprowadzają z nich określone zbiory danych, a następnie wymagają podsumowania na podstawie tych pochodnych atrybutów (Faza redukcji).

1

To pytanie został poproszony przed czasem. Od 2009 roku istniała teoretyczna analiza obliczeń MapReduce. W dokumencie z 2010 roku Howard Karloff et al. formalizuje MapReduce jako klasę złożoności w taki sam sposób, w jaki teoretycy badają P i NP.Dowodzą one pewnych związków między MapReduce a klasą NC (która może być traktowana jako równoległe maszyny z pamięcią dzieloną lub określona klasa ograniczonych obwodów). Ale głównym dziełem są ich formalne definicje.