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