1. 程式人生 > >一、為什麽要用MapReduce

一、為什麽要用MapReduce

reduce 運行 主機 同事 lis mapreduce 兩個 編寫 格式

一、為什麽要用MapReduce?

  首先MapReduce被廣泛應用於日誌分析、海量數據的排序、在海量數據中查找特定模式等 場景。而且它非常簡單,易於實現且擴展性強。可以通過它編寫同事在多臺主機上運行的程序,可以使用Python/PHP/C++等非java類語言編寫map或reduce程序。還可以在任何安裝Hadoop的集群中運行同樣的程序,不論這個集群有多少臺主機。

二、MapReduce計算模型

  在Hadoop中,用於執行MapReduce任務的機器角色有兩個:

一個是JobTracker,另一個是TaskTracker。JobTracker是用於調度工作的,TaskTracker是用於執行工作的。而一個Hadoop集群中只有一臺JobTracker。

三、MapReduce的Job

  在Hadoop中,每個MapReduce任務都被初始化為一個job,每個job又可以分為兩個階段:map階段和reduce階段。這兩個階段分別用兩個函數來表示,也就是map函數和reduce函數。

  map函數接受<key,list of value>形式的輸入,然後對value集合進行處理。

  reduce 函數產生0或1個輸出。reduce的輸出格式也是<key,value>形式的。

一、為什麽要用MapReduce