首頁技術文章正文

ReduceTask工作原理:ReduceTask工作過程有哪幾個階段?

更新時間:2021-12-06 來源:黑馬程序員 瀏覽量:

IT培訓班

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

ReduceTask工作原理

下面針對ReduceTask工作過程的5個階段進行介紹:

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

(2) Merge階段:在遠程復制數(shù)據(jù)的同時,ReduceTask會啟動兩個后臺線程,分別對內(nèi)存和磁盤上的文件進行合并,以防止內(nèi)存使用過多或者磁盤文件過多。

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

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

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



猜你喜歡:

MapReduce編程開發(fā)實例——詞頻統(tǒng)計過程

MapReduce的工作流程是怎樣的?

MapReduce中Maper組件用法介紹

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

分享到:
在線咨詢 我要報名
和我們在線交談!