更新时间:2021年12月06日16时51分 来源:传智教育 浏览次数:
ReduceTask的工作过程主要经历了5个阶段,分别是Copy阶段、Merge阶段、Sort阶段、Reduce阶段和Write阶段,如下图所示。
下面针对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上。
猜你喜欢: