WordCount运行详解
1、MapReduce理論簡(jiǎn)介
1.1 MapReduce編程模型
MapReduce采用"分而治之"的思想,把對(duì)大規(guī)模數(shù)據(jù)集的操作,分發(fā)給一個(gè)主節(jié)點(diǎn)管理下的各個(gè)分節(jié)點(diǎn)共同完成,然后通過(guò)整合各個(gè)節(jié)點(diǎn)的中間結(jié)果,得到最終結(jié)果。簡(jiǎn)單地說(shuō),MapReduce就是"任務(wù)的分解與結(jié)果的匯總"。
在Hadoop中,用于執(zhí)行MapReduce任務(wù)的機(jī)器角色有兩個(gè):一個(gè)是JobTracker;另一個(gè)是TaskTracker,JobTracker是用于調(diào)度工作的,TaskTracker是用于執(zhí)行工作的。一個(gè)Hadoop集群中只有一臺(tái)JobTracker。
在分布式計(jì)算中,MapReduce框架負(fù)責(zé)處理了并行編程中分布式存儲(chǔ)、工作調(diào)度、負(fù)載均衡、容錯(cuò)均衡、容錯(cuò)處理以及網(wǎng)絡(luò)通信等復(fù)雜問(wèn)題,把處理過(guò)程高度抽象為兩個(gè)函數(shù):map和reduce,map負(fù)責(zé)把任務(wù)分解成多個(gè)任務(wù),reduce負(fù)責(zé)把分解后多任務(wù)處理的結(jié)果匯總起來(lái)。
需要注意的是,用MapReduce來(lái)處理的數(shù)據(jù)集(或任務(wù))必須具備這樣的特點(diǎn):待處理的數(shù)據(jù)集可以分解成許多小的數(shù)據(jù)集,而且每一個(gè)小數(shù)據(jù)集都可以完全并行地進(jìn)行處理。
1.2 MapReduce處理過(guò)程
在Hadoop中,每個(gè)MapReduce任務(wù)都被初始化為一個(gè)Job,每個(gè)Job又可以分為兩種階段:map階段和reduce階段。這兩個(gè)階段分別用兩個(gè)函數(shù)表示,即map函數(shù)和reduce函數(shù)。map函數(shù)接收一個(gè)<key,value>形式的輸入,然后同樣產(chǎn)生一個(gè)<key,value>形式
總結(jié)
以上是生活随笔為你收集整理的WordCount运行详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JDK和SSH无密码配置
- 下一篇: Eclipse开发环境设置