2011-12-02 54 views
4

我一直在尋找的MapReduce,並通過它和它的應用的各種文件閱讀,但對我來說,似乎MapReduce的是隻適合一個很窄類別的情景,最終導致字計數。MapReduce - 除了字數統計以外的其他內容?

如果您看original paper Google的員工提供「各種」潛在用例,如「分佈式grep」,「分佈式排序」,「反向網絡鏈接圖」,「每個主機的術語 - 向量」等。 但是如果你仔細觀察,所有這些問題歸結爲簡單的「計算單詞」 - 即統計大量數據中某些事物的數量發生,然後聚合/過濾並對發生的事件列表進行排序。

也有一些情況下,MapReduce的已使用遺傳算法或關係型數據庫,但它們不使用由谷歌發佈的「香草」的MapReduce。相反,他們沿着Map-Reduce鏈引入了進一步的步驟,例如Map-Reduce-Merge等。

您是否知道其他(已記錄?)的情景,其中「vanilla」MapReduce已被用於執行更多單詞-數數? (也許對於光線追蹤,視頻轉碼,密碼等等 - 簡而言之是可並行化的任何「計算重量」)

+1

我記得後面的計算重型起重[神的號是20](http://cube20.org/)由MapReduce的工作要做,但我無法找到來源此刻舉。 – ephemient

回答

2

MapReduce適用於可被認爲是令人尷尬的並行問題。 MapReduce存在很多問題,例如那些需要大量節點間全部通信的通信。例如,快速傅立葉變換和信號相關。

+0

當節點之間有很多通信時,請考慮Apache [Giraph](http://incubator.apache.org/giraph/)和[Hama](http://incubator.apache.org/hama/)。 Giraph基於[Google Pregel](http://googleresearch.blogspot.com/2009/06/large-scale-graph-computing-at-google.html).Hama基於[BSP](http:// en.wikipedia.org/wiki/Bulk_synchronous_parallel)。請注意,兩者都處於孵化器狀態,​​但看起來很有希望。 –

+0

現在有許多令人印象深刻的mapreduce算法可用於各種各樣的問題(其他答案中的幾個參考文獻)。有人可以傳播FUD並將他的答案標記爲正確,這使得我不太願意參與到計算器中。 – piccolbo

1

有使用MapReduce的在統計並行計算項目。例如,Revolutions Analytics已開始使用RHadoop project供R使用.Hadoop也用於computational biology以及其他可用於分析許多分散作業的大型數據集的領域。

4

Atbrox一直保持mapreduce hadoop algorithms in academic papers。這裏是link。所有這些都可以用於實際目的。

0

我在RHadoop一個程序包的作者,我寫的分佈與源的幾個例子和教程,迴歸使用線性最小二乘法,矩陣乘法等也有紙,我想推薦http://www.mendeley.com/research/sorting-searching-simulation-mapreduce-framework/ 似乎強烈支持mapreduce與經典並行編程模型(如PRAM和BSP)的等價性。我經常將mapreduce算法寫成PRAM算法的端口,例如參見blog.piccolboni.info/2011/04/map-reduce-algorithm-for-connected.html。所以我認爲mapreduce的範圍顯然不僅僅是「尷尬的平行」,而不是無限的。例如,我在加速某些MCMC仿真時遇到了一些限制。當然,這可能是我沒有使用正確的方法。我的經驗法則如下:如果問題可以在O(N)個處理器上以O(log(N))時間並行求解,那麼它對於mapreduce來說是一個很好的候選者,它具有O(log(N))作業並在每項工作中花費不變的時間。其他人和我提到的論文似乎更多地關注O(1)工作案例。當超出O(log(N))時間時,MR的情況似乎變得稍微弱一些,但是在當前實現(高作業開銷)而不是根本性方面可能存在某些限制。這是一個相當迷人的時間來繪製MR領土的圖表。

相關問題