学科分类
目录
Hadoop技术栈

ReduceTask工作原理

ReduceTask的工作过程主要经历了5个阶段,分别是Copy阶段、Merge阶段、Sort阶段、Reduce阶段和Write阶段,如图1所示。

img

​ 图1 ReduceTask工作原理

​ 下面针对ReduceTask工作过程的5个阶段进行介绍:

(1)Copy阶段:Reduce会从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。

(2)Merge阶段:在远程拷贝数据的同时,ReduceTask会启动两个后台线程,分别对内存和磁盘上的文件进行合并,以防止内存使用过多或者磁盘文件过多。

(3)Sort阶段:用户编写reduce()方法输入数据是按key进行聚集的一组数据。为了将key相同的数据聚在一起,Hadoop采用了基于排序的策略。由于各个MapTask已经实现对自己的处理结果进行了局部排序,因此,ReduceTask只需对所有数据进行一次归并排序即可。

(4)Reduce阶段:对排序后的键值对调用reduce()方法,键相等的键值对调用一次reduce()方法,每次调用会产生零个或者多个键值对,最后把这些输出的键值对写入到HDFS系统中。

(5)Write阶段:reduce()函数将计算结果写到HDFS上 。

点击此处
隐藏目录