2013-06-05 31 views
1

假設我在獨立的excel文件中有大量獨立的數據集。hadoop map reduce vs clojure pmap函數

就運行效率而言,使用clojure Pmap函數處理數據還是使用hadoop map reduce會更好?

每個excel文件至少包含約34000行,我有相當數量的它們。

對不起,初學者的問題,因爲我是比較新的都和他們正在做的研究

正如你們中的一些人已經解釋,

也許有更多的問題是要比較的例子Clojure的PMAP運行同一份軟件的多個實例,這些差異有哪些?

我能想到的唯一的事情就是PMAP可以採取的變量任何金額然而,閱讀每個應用實例一個文件需要的文件數量被稱爲前期和實例初始化

+1

參見:[我需要SQL或Hadoop?流程圖](http://www.aaroncordova。com/2012/01/do-i-need-sql-or-hadoop-flowchart.html) - s/SQL/pmap/ – noahlz

回答

2

我會說使用Hadoop,但不是直接,而是通過來自Clojure的Cascalog。這裏的價值主張就是Hadoop爲您提供的所有功能,以及優秀的聲明式查詢語言(即使任務相對較小,使用Cascalog也很有價值;在本地模式下使用Hadoop進行設置完全沒有問題)。

原來介紹的博客文章仍然是最好的出發點(雖然現在有可用豐富的文檔 - 見GitHub的維基):第一個是here並將其鏈接到在最後第二個。

給你的,它看起來像一個味道,這裏的第一篇教程摘要(找出所有「關注」關係,其中跟隨比他們遵循人以上):

(?<- (stdout) [?person1 ?person2] 
    (age ?person1 ?age1) 
    (follows ?person1 ?person2) 
    (age ?person2 ?age2) 
    (< ?age2 ?age1)) 

沒問題在羣集上運行它也可以參考Nathan Marz博客上的News Feed in 38 lines of code using Cascalog

1

很多語言具有地圖縮減功能,包括Clojure。

我想說,Hadoop將成爲無可爭議的贏家,因爲它通過機器集羣來管理它。這是大規模並行化的潛力,將使它明顯優於沒有內置的其他任何東西。

+0

有沒有clojure智勝者hadoop的情況?據說在小資源上運行,可能是幾臺PC而不是機器集羣? – aceminer

+0

「智勝者」?聽起來像你現在對神奇的想法感到內疚。 – duffymo

2

我不會去運行並建立一個Hadoop集羣,只是爲了能夠處理大量的小文件(這對於Hadoop來說並不理想)。 Hadoop專門用於處理大文件(其塊大小爲64M),並且映射效率的降低來自讓這些大文件分佈在集羣上並將計算髮送到數據。

就你而言,似乎每次處理一個文件時運行軟件的多個副本可以解決問題,並且具有最小的開銷 - 計算和操作(即設置和維護hadoop)。

一件事的Hadoop可以給你的是處理任務的管理,也就是退休故障等情況,但同樣,這似乎和矯枉過正你的描述

+0

@ arnon.me嗨,與運行同一文件的多個副本相比,clojure pmap功能如何? – aceminer

+0

如果你有很多大小相同的文件,你可以通過處理儘可能多的文件來獲得足夠的並行性,即使每個文件都由單個內核處理。如果文件的大小有很大的差異,或者只有很少的文件,那麼可以將單個文件的處理進行平行處理,如果處理真的是CPU密集型的,那麼支付處理分佈式文件的代價甚至是值得的方式(例如通過hadoop) - 這一切都取決於:) –