全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

ReduceTask工作原理:ReduceTask工作過(guò)程有哪幾個(gè)階段?

更新時(shí)間:2021-12-06 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

ReduceTask的工作過(guò)程主要經(jīng)歷了5個(gè)階段,分別是Copy階段、Merge階段、Sort階段、Reduce階段和Write階段,如下圖所示。

ReduceTask工作原理

下面針對(duì)ReduceTask工作過(guò)程的5個(gè)階段進(jìn)行介紹:

(1) Copy階段:Reduce會(huì)從各個(gè)MapTask上遠(yuǎn)程復(fù)制一片數(shù)據(jù),并針對(duì)某一片數(shù)據(jù),如果其大小超過(guò)一定閾值,則寫(xiě)到磁盤(pán)上,否則直接放到內(nèi)存中。

(2) Merge階段:在遠(yuǎn)程復(fù)制數(shù)據(jù)的同時(shí),ReduceTask會(huì)啟動(dòng)兩個(gè)后臺(tái)線程,分別對(duì)內(nèi)存和磁盤(pán)上的文件進(jìn)行合并,以防止內(nèi)存使用過(guò)多或者磁盤(pán)文件過(guò)多。

(3) Sort階段:用戶編寫(xiě)reduce()方法輸人數(shù)據(jù)是按key進(jìn)行聚集的一組數(shù)據(jù)。為了將key相同的數(shù)據(jù)聚在一起,Hadoop采用了基于排序的策略。由于各個(gè)MapTask已經(jīng)實(shí)現(xiàn)對(duì)自己的處理結(jié)果進(jìn)行了局部排序,因此,ReduceTask只需對(duì)所有數(shù)據(jù)進(jìn)行一次歸并排序即可。

(4) Reduce階段:對(duì)排序后的鍵值對(duì)調(diào)用reduce()方法,鍵相等的鍵值對(duì)調(diào)用一次reduce()方法,每次調(diào)用會(huì)產(chǎn)生零個(gè)或者多個(gè)鍵值對(duì),最后把這些輸出的鍵值對(duì)寫(xiě)人到HDFS中。

(5) Write階段: reduce()函數(shù)將計(jì)算結(jié)果寫(xiě)到HDFS上。



猜你喜歡:

MapReduce編程開(kāi)發(fā)實(shí)例——詞頻統(tǒng)計(jì)過(guò)程

MapReduce的工作流程是怎樣的?

MapReduce中Maper組件用法介紹

黑馬程序員python+大數(shù)據(jù)培訓(xùn)課程

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!