Hadoop數(shù)據(jù)分析平臺(tái)實(shí)戰(zhàn)——070深入理解MapReduce 02(案例)

離線數(shù)據(jù)分析平臺(tái)實(shí)戰(zhàn)——070深入理解MapReduce 02

Shuffle階段說明

shuffle階段主要包括map階段的combine磨淌、group、sort颁独、partition以及reducer階段的合并排序铐料。
Map階段通過shuffle后會(huì)將輸出數(shù)據(jù)按照reduce的分區(qū)分文件的保存,
文件內(nèi)容是按照定義的sort進(jìn)行排序好的阳液。
Map階段完成后會(huì)通知ApplicationMaster,然后AM會(huì)通知Reduce進(jìn)行數(shù)據(jù)的拉取宿稀,在拉取過程中進(jìn)行reduce端的shuffle過程趁舀。

用戶自定義Combiner

Combiner可以減少M(fèi)ap階段的中間輸出結(jié)果數(shù),降低網(wǎng)絡(luò)開銷祝沸。
默認(rèn)情況下是沒有Combiner的矮烹。
用戶自定義的Combiner要求是Reducer的子類,以Map的輸出<key,value>作為Combiner的輸入<key,value>和輸出<key,value>罩锐,也就是說Combiner的輸入和輸出必須是一樣的奉狈。

可以通過job.setCombinerClass設(shè)置combiner的處理類,MapReduce框架不保證一定會(huì)調(diào)用該類的方法涩惑。

用戶自定義Partitoner

Partitioner是用于確定map輸出的<key,value>對(duì)應(yīng)的處理reducer是那個(gè)節(jié)點(diǎn)仁期。

默認(rèn)MapReduce任務(wù)reduce個(gè)數(shù)為1個(gè),此時(shí)Partitioner其實(shí)沒有什么效果,但是當(dāng)我們將reduce個(gè)數(shù)修改為多個(gè)的時(shí)候跛蛋,partitioner就會(huì)決定key所對(duì)應(yīng)reduce的節(jié)點(diǎn)序號(hào)(從0開始)熬的。
可以通過job.setPartitionerClass方法指定Partitioner類,默認(rèn)情況下使用HashPartitioner(默認(rèn)調(diào)用key的hashCode方法)赊级。

用戶自定義Group

GroupingComparator是用于將Map輸出的<key,value>進(jìn)行分組組合成<key,List<value>>的關(guān)鍵類押框,直白來講就是用于確定key1和key2是否屬于同一組,如果是同一組理逊,就將map的輸出value進(jìn)行組合橡伞。
要求我們自定義的類實(shí)現(xiàn)自接口RawComparator,可以通過job.setGroupingComparatorClass方法指定比較類晋被。
默認(rèn)情況下使用WritableComparator兑徘,但是最終調(diào)用key的compareTo方法進(jìn)行比較。

用戶自定義Sort

SortComparator是用于將Map輸出的<key,value>進(jìn)行key排序的關(guān)鍵類,直白來講就是用于確定key1所屬組和key2所屬組那個(gè)在前,那個(gè)在后。

要求我們自定義的類實(shí)現(xiàn)自接口RawComparator,可以通過job.setSortComparatorClass方法指定比較類挡闰。默認(rèn)情況下使用WritableComparator,但是最終調(diào)用key的compareTo方法進(jìn)行比較鸠天。

用戶自定義Reducer的Shuffle

在reduce端拉取map的輸出數(shù)據(jù)的時(shí)候烁涌,會(huì)進(jìn)行shuffle(合并排序),MapReduce框架以插件模式提供了一個(gè)自定義的方式牺蹄,我們可以通過實(shí)現(xiàn)接口ShuffleConsumerPlugin忘伞,并指定參數(shù)mapreduce.job.reduce.shuffle.consumer.plugin.class來指定自定義的shuffle規(guī)則,但是一般情況下沙兰,直接采用默認(rèn)的類org.apache.hadoop.mapreduce.task.reduce.Shuffle氓奈。

案例--二次排序

hadoop默認(rèn)只對(duì)key進(jìn)行排序,有時(shí)候我們需要將value部分也進(jìn)行排序鼎天,這種情況下有兩種方式實(shí)現(xiàn)舀奶,第一種,我們將排序放到reducer端進(jìn)行斋射,但是這種方式當(dāng)數(shù)據(jù)量比較大的時(shí)候育勺,會(huì)比較消耗內(nèi)存。
那么另外一種方式就是二次排序罗岖。
二次排序的內(nèi)部實(shí)行其實(shí)是先按照key+value組合的方式進(jìn)行排序涧至,然后根據(jù)單獨(dú)key進(jìn)行分組的一種實(shí)行方式。
要求reducer個(gè)數(shù)為2桑包,而且奇數(shù)到第一個(gè)reducer進(jìn)行處理南蓬,偶數(shù)到第二個(gè)reducer進(jìn)行處理。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赘方,隨后出現(xiàn)的幾起案子烧颖,更是在濱河造成了極大的恐慌,老刑警劉巖窄陡,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倒信,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡泳梆,警方通過查閱死者的電腦和手機(jī)鳖悠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來优妙,“玉大人乘综,你說我怎么就攤上這事√着穑” “怎么了卡辰?”我有些...
    開封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)邪意。 經(jīng)常有香客問我九妈,道長(zhǎng),這世上最難降的妖魔是什么雾鬼? 我笑而不...
    開封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任萌朱,我火速辦了婚禮,結(jié)果婚禮上策菜,老公的妹妹穿的比我還像新娘晶疼。我一直安慰自己,他們只是感情好又憨,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開白布翠霍。 她就那樣靜靜地躺著,像睡著了一般蠢莺。 火紅的嫁衣襯著肌膚如雪寒匙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天躏将,我揣著相機(jī)與錄音锄弱,去河邊找鬼。 笑死耸携,一個(gè)胖子當(dāng)著我的面吹牛棵癣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播夺衍,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼狈谊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起河劝,我...
    開封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤壁榕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后赎瞎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牌里,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年务甥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了牡辽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡敞临,死狀恐怖态辛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情挺尿,我是刑警寧澤奏黑,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站编矾,受9級(jí)特大地震影響熟史,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜窄俏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一蹂匹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧裆操,春花似錦怒详、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吊骤。三九已至缎岗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間白粉,已是汗流浹背传泊。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸭巴,地道東北人眷细。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像鹃祖,于是被迫代替她去往敵國(guó)和親溪椎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

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