一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Hadoop源代碼分析(MapReduce概論)

 funson 2011-03-26

大家都熟悉文件系統(tǒng),在對(duì)HDFS進(jìn)行分析前,我們并沒有花很多的時(shí)間去介紹HDFS的背景,畢竟大家對(duì)文件系統(tǒng)的還是有一定的理解的,而且也有很好的文檔。在分析HadoopMapReduce部分前,我們還是先了解系統(tǒng)是如何工作的,然后再進(jìn)入我們的分析部分。下面的圖來(lái)自http://horicky./2008/11/hadoop-mapreduce-implementation.html,是我看到的講MapReduce最好的圖。



 

Hadoop帶的wordcount為例子(下面是啟動(dòng)行):

hadoop jar hadoop-0.19.0-examples.jar wordcount /usr/input /usr/output

用戶提交一個(gè)任務(wù)以后,該任務(wù)由JobTracker協(xié)調(diào),先執(zhí)行Map階段(圖中M1,M2和M3),然后執(zhí)行Reduce階段(圖中R1和R2)。Map階段和Reduce階段動(dòng)作都受TaskTracker監(jiān)控,并運(yùn)行在獨(dú)立于TaskTracker的Java虛擬機(jī)中。

我們的輸入和輸出都是HDFS上的目錄(如上圖所示)。輸入由InputFormat接口描述,它的實(shí)現(xiàn)如ASCII文件,JDBC數(shù)據(jù)庫(kù)等,分別處理對(duì)于的數(shù)據(jù)源,并提供了數(shù)據(jù)的一些特征。通過InputFormat實(shí)現(xiàn),可以獲取InputSplit接口的實(shí)現(xiàn),這個(gè)實(shí)現(xiàn)用于對(duì)數(shù)據(jù)進(jìn)行劃分(圖中的splite1到splite5,就是劃分以后的結(jié)果),同時(shí)從InputFormat也可以獲取RecordReader接口的實(shí)現(xiàn),并從輸入中生成<k,v>對(duì)。有了<k,v>,就可以開始做map操作了。

map操作通過context.collect(最終通過OutputCollector. collect)將結(jié)果寫到context中。當(dāng)Mapper的輸出被收集后,它們會(huì)被Partitioner類以指定的方式區(qū)分地寫出到輸出文件里。我們可以為Mapper提供Combiner,在Mapper輸出它的<k,v>時(shí),鍵值對(duì)不會(huì)被馬上寫到輸出里,他們會(huì)被收集在list里(一個(gè)key值一個(gè)list),當(dāng)寫入一定數(shù)量的鍵值對(duì)時(shí),這部分緩沖會(huì)被Combiner中進(jìn)行合并,然后再輸出到Partitioner中(圖中M1的黃顏色部分對(duì)應(yīng)著Combiner和Partitioner)。

Map的動(dòng)作做完以后,進(jìn)入Reduce階段。這個(gè)階段分3個(gè)步驟:混洗(Shuffle),排序(sort)和reduce。

混洗階段,Hadoop的MapReduce框架會(huì)根據(jù)Map結(jié)果中的key,將相關(guān)的結(jié)果傳輸?shù)侥骋粋€(gè)Reducer上(多個(gè)Mapper產(chǎn)生的同一個(gè)key的中間結(jié)果分布在不同的機(jī)器上,這一步結(jié)束后,他們傳輸都到了處理這個(gè)key的Reducer的機(jī)器上)。這個(gè)步驟中的文件傳輸使用了HTTP協(xié)議。

排序和混洗是一塊進(jìn)行的,這個(gè)階段將來(lái)自不同Mapper具有相同key值的<key,value>對(duì)合并到一起。

Reduce階段,上面通過Shuffle和sort后得到的<key, (list of values)>會(huì)送到Reducer. reduce方法中處理,輸出的結(jié)果通過OutputFormat,輸出到DFS中。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    好吊妞视频只有这里有精品| 大伊香蕉一区二区三区| 在线免费不卡亚洲国产| 开心五月激情综合婷婷色| 91午夜少妇极品福利| 一区二区三区日韩在线| 日韩精品一级片免费看 | 精品欧美日韩一二三区| 国产高清在线不卡一区| 色一欲一性一乱—区二区三区| 老司机精品福利视频在线播放| 国产亚洲中文日韩欧美综合网| 人体偷拍一区二区三区| 一区二区欧美另类稀缺| 国产精品一区二区高潮| 免费在线播放一区二区| 精品偷拍一区二区三区| 久久黄片免费播放大全| 国产一区二区不卡在线视频| 丝袜av一区二区三区四区五区| 亚洲日本久久国产精品久久| 成人午夜视频在线播放| 日本av在线不卡一区| 亚洲视频偷拍福利来袭| 中文字幕中文字幕在线十八区| 欧美精品一区久久精品| 日本加勒比在线观看不卡| 好吊妞在线免费观看视频| 肥白女人日韩中文视频 | 亚洲中文字幕日韩在线| 日本人妻中出在线观看| 日韩欧美综合在线播放| 欧美胖熟妇一区二区三区| 久草国产精品一区二区| 中文字幕乱码一区二区三区四区 | 老司机激情五月天在线不卡| 欧美日韩久久精品一区二区| 五月天丁香婷婷一区二区| 超薄丝袜足一区二区三区| 日本欧美一区二区三区就| 色狠狠一区二区三区香蕉蜜桃|