1、MapReduce理论简介
轉載:http://www.cnblogs.com/xia520pi/archive/2012/05/16/2504205.html
1.1 MapReduce編程模型
MapReduce采用"分而治之"的思想,把對大規模數據集的操作,分發給一個主節點管理下的各個分節點共同完成,然后通過整合各個節點的中間結果,得到最終結果。簡單地說,MapReduce就是"任務的分解與結果的匯總"。
在Hadoop中,用于執行MapReduce任務的機器角色有兩個:一個是JobTracker;另一個是TaskTracker,JobTracker是用于調度工作的,TaskTracker是用于執行工作的。一個Hadoop集群中只有一臺JobTracker。
在分布式計算中,MapReduce框架負責處理了并行編程中分布式存儲、工作調度、負載均衡、容錯均衡、容錯處理以及網絡通信等復雜問題,把處理過程高度抽象為兩個函數:map和reduce,map負責把任務分解成多個任務,reduce負責把分解后多任務處理的結果匯總起來。
需要注意的是,用MapReduce來處理的數據集(或任務)必須具備這樣的特點:待處理的數據集可以分解成許多小的數據集,而且每一個小數據集都可以完全并行地進行處理。
?
1.2 MapReduce處理過程
在Hadoop中,每個MapReduce任務都被初始化為一個Job,每個Job又可以分為兩種階段:map階段和reduce階段。這兩個階段分別用兩個函數表示,即map函數和reduce函數。map函數接收一個<key,value>形式的輸入,然后同樣產生一個<key,value>形式的中間輸出,Hadoop函數接收一個如<key,(list of values)>形式的輸入,然后對這個value集合進行處理,每個reduce產生0或1個輸出,reduce的輸出也是<key,value>形式的。
?
?
MapReduce處理大數據集的過程
總結
以上是生活随笔為你收集整理的1、MapReduce理论简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022中国私域流量管理研究报告
- 下一篇: 搭架SSH服务器学习笔记