(1)Copy階段
ReduceTask從各個MapTask上遠程拷貝一片數據,并針對某一片數據,如果其大小超過一定閾值,
則寫到磁盤上 ,否則直接放到內存中。
(2)Merge階段
在遠程拷貝數據的同時 ,ReduceTask啟動了兩個后臺線程對內存和磁盤上的文件進行合并 ,以
防止內存使用過多或磁盤上文件過多。
(3)Sort階段
按照MapReduce語義 ,用戶編寫reduce()函數輸入數據是按key進行聚集的一組數據。為了將key 相
同的數據聚在一起 ,Hadoop采用了基于排序的策略。由于各個MapTask已經實現對自己的處理結果進行了局部
排序 ,因此 ,ReduceTask只需對所有數據進行一次歸并排序即可。
(4)Reduce階段
reduce()函數將計算結果寫到HDFS上。