MapReduce那點事

一、概述

MapReduce是一種分布式計算模型妓笙,由兩個階段組成:Map和Reduce宰衙,用戶只需要實現(xiàn)map()和reduce()兩個函數(shù),即可實現(xiàn)分布式計算闯估。

這兩個函數(shù)的形參是key灼舍、value對,表示函數(shù)的輸入信息涨薪。

其中map()骑素,輸入鍵值對<k1,v1>,輸出鍵值對<k2,v2>;

reduce()刚夺,輸入鍵值對<k2,{v2}>,輸出鍵值對<k3,v3>献丑。


二末捣、MapReduce原理

三、Map任務(wù)處理

1创橄、讀取輸入文件內(nèi)容箩做,解析成key、value對妥畏。對輸入文件的每一行邦邦,解析成 key、value對醉蚁。每一個鍵值對調(diào)用一次map函數(shù)燃辖。

2 、寫自己的邏輯网棍,處理輸入的key黔龟、value,轉(zhuǎn)換成新的key确沸、value輸出捌锭。

3 、對輸出的key罗捎、value進行分區(qū)观谦。

4 、對不同分區(qū)的數(shù)據(jù)桨菜,按照key進行排序豁状、分組。相同key的value放到一個集合中倒得。

5? 泻红、 (可選)分組后的數(shù)據(jù)進行歸約。


四霞掺、Reduce任務(wù)處理

1谊路、對多個map任務(wù)的輸出,按照不同的分區(qū)菩彬,通過網(wǎng)絡(luò)copy到不同的reduce節(jié)點缠劝。

2 、對多個map任務(wù)的輸出進行合并骗灶、排序惨恭。寫reduce函數(shù)自己的邏輯,對輸入的key耙旦、value處理脱羡,轉(zhuǎn)換成新的key、value輸出。

3 锉罐、把reduce的輸出保存到HDFS文件中帆竹。


五、Map任務(wù)和Reduce任務(wù)舉例

假如我們要做一個詞頻統(tǒng)計的任務(wù)氓鄙,在HDFS中的words文件內(nèi)容

YSL 17

紀梵希 303

香奈兒 46

YSL 12

YSL 14


Map輸入這一步由MapReduce框架自動完成馆揉,


Reduce輸入這一步由MapReduce框架自動完成,



六抖拦、MapReduce流程分析

1升酣、過程各個角色的作用

jobClient:提交作業(yè)

JobTracker:初始化作業(yè),分配作業(yè)态罪,TaskTracker與其進行通信噩茄,協(xié)調(diào)監(jiān)控整個作業(yè)

TaskTracker:定期與JobTracker通信,執(zhí)行Map和Reduce任務(wù)

HDFS:保存作業(yè)的數(shù)據(jù)复颈、配置绩聘、jar包、結(jié)果

2耗啦、作業(yè)提交流程

(1)提交作業(yè)準備:編寫自己的MR程序凿菩; 配置作業(yè),包括輸入輸出路徑等等帜讲。

(2)提交作業(yè):配置完成后衅谷,通過JobClient提交。

(3)具體功能:與JobTracker通信得到一個jar的存儲路徑和JobId,輸入輸出路徑檢查似将、將jobj ar拷貝到的HDFS获黔。


3、作業(yè)初始化

客戶端提交作業(yè)后在验,JobTracker會將作業(yè)加入到隊列玷氏,然后進行調(diào)度,默認是FIFO方式腋舌。

具體功能:作業(yè)初始化主要是指JobInProgress中完成的盏触。

讀取分片信息。創(chuàng)建task包括Map和Reduce任創(chuàng)建task包括Map和Reduce任務(wù)块饺。

創(chuàng)建TaskInProgress執(zhí)行task赞辩,包括map任務(wù)和reduce任務(wù)。


4刨沦、任務(wù)分配

TaskTracker與JobTracker之間的通信和任務(wù)分配是通過心跳機制實現(xiàn)的

TaskTracker會主動定期向JobTracker發(fā)送報告,詢問是否有任務(wù)要做膘怕,如果有想诅,就會申請到任務(wù)。


5、任務(wù)執(zhí)行

如果TaskTracker拿到任務(wù)来破,會將所有信息拷貝到本地篮灼,包括代碼、配置徘禁、分片信息等诅诱。

TaskTracker中的localizeJob()方法會被調(diào)用進行本地化,拷貝job.jar送朱,jobconf娘荡,job.xml到本地。

TaskTracker調(diào)用launchTaskForJob()方法加載啟動任務(wù)驶沼。

MapTaskRunner和ReduceTaskRunner分別啟動java child進程來執(zhí)行相應(yīng)的任務(wù)炮沐。


6、錯誤處理

a回怜、JobTracker失敗

存在單點故障大年,hadoop2.0解決了這個問題

b、TraskTracker失敗

TraskTracker崩潰了會停止向JobTracker發(fā)送心跳信息玉雾。

JobTracker會將TraskTracker從等待的任務(wù)池中移除翔试,并將該任務(wù)轉(zhuǎn)移到其他的地方執(zhí)行

JobTracker將TaskTracker加入到黑名單中

c、Task失敗

任務(wù)失敗垦缅,會向TraskTracker拋出異常,最后任務(wù)掛起

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赢底,一起剝皮案震驚了整個濱河市失都,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌幸冻,老刑警劉巖粹庞,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異洽损,居然都是意外死亡庞溜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門碑定,熙熙樓的掌柜王于貴愁眉苦臉地迎上來流码,“玉大人,你說我怎么就攤上這事延刘÷裕” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵碘赖,是天一觀的道長驾荣。 經(jīng)常有香客問我外构,道長,這世上最難降的妖魔是什么播掷? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任审编,我火速辦了婚禮,結(jié)果婚禮上歧匈,老公的妹妹穿的比我還像新娘垒酬。我一直安慰自己,他們只是感情好件炉,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布勘究。 她就那樣靜靜地躺著,像睡著了一般妻率。 火紅的嫁衣襯著肌膚如雪乱顾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天宫静,我揣著相機與錄音走净,去河邊找鬼。 笑死孤里,一個胖子當著我的面吹牛伏伯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捌袜,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼说搅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了虏等?” 一聲冷哼從身側(cè)響起弄唧,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎霍衫,沒想到半個月后候引,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡敦跌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年澄干,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柠傍。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡麸俘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惧笛,到底是詐尸還是另有隱情从媚,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布患整,位于F島的核電站拜效,受9級特大地震影響炭懊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拂檩,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘲碧。 院中可真熱鬧稻励,春花似錦、人聲如沸愈涩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽履婉。三九已至煤篙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毁腿,已是汗流浹背辑奈。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留已烤,地道東北人鸠窗。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像胯究,于是被迫代替她去往敵國和親稍计。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • MapReduce框架結(jié)構(gòu)## MapReduce是一個用于大規(guī)模數(shù)據(jù)處理的分布式計算模型MapReduce模型主...
    Bloo_m閱讀 3,724評論 0 4
  • MapReduce是一個數(shù)據(jù)處理的編程模型裕循。這個模型很簡單臣嚣,但也不是簡單到不能夠支持一些有用的語言。Hadoop能...
    單行線的旋律閱讀 1,512評論 0 2
  • 目的這篇教程從用戶的角度出發(fā)剥哑,全面地介紹了Hadoop Map/Reduce框架的各個方面硅则。先決條件請先確認Had...
    SeanC52111閱讀 1,708評論 0 1
  • MapReduce是面向大數(shù)據(jù)并行處理的計算模型、框架和平臺星持。MapReduce是一個基于集群的高性能并行計算平臺...
    VVictoriaLee閱讀 404評論 0 1
  • 石參抢埋,姓孔,安徽人督暂,60后揪垄,注冊會計師。 石參進圍棋群很早逻翁,十多年了饥努,是群里的高手之一,在弈城網(wǎng)上能升到8D八回,長期...
    天山客閱讀 488評論 0 0