2011-03-18 45 views

回答

1

MapReduce是一種處理模型;它會準確告訴你你的處理任務應該適合什麼。

  1. 你的處理必須面向批處理
  2. 你必須能夠將您的工作轉變成一個(組)映射和減少步驟。
  3. 爲了讓MapReduce的可伸縮性具有任何優勢,您必須能夠將工作分成足夠多的可獨立處理的獨立(!!)塊。

Hadoop確實(除其他之外)MapReduce具有額外的優勢,即您可以在1000個系統上可靠地並行運行作業(如果您有足夠的獨立作品)。

鑑於這些限制:有些事情不能完成,很多事情都可以完成。 分析日誌文件(即一大組獨立的行)甚至網絡分析(每一個訪客/會話都可以單獨處理)是最常見的應用程序之一。

所以是的,你的任務必須進行改造以適應模型的工作。

0

Hadoop實際上是一個用於進程拆分/組合的引擎。你將一個任務分解成相似的數據集[map],然後將相似的集合合併成一個結果[reduce/merge]。

它是一種製作並行應用程序的方法。映射和縮小分佈在集羣內的不同節點上。它是一個非常嚴格的任務劃分和可以在進程之間傳遞哪些數據[必須可序列化和斷開連接到其他地圖/數據中的數據]

+0

同意這個抽象描述,mapreduce也意味着解析大文件e.G.網絡服務器日誌。 – 2011-03-18 18:57:37

+0

這聽起來像是一個問題,而不是應用程序imo。 – monksy 2011-03-18 20:26:32

0

基本上,您必須能夠將您的任務「拆分」爲獨立的任務。

相關問題