首页技术文章正文

ReduceTask工作原理:ReduceTask工作过程有哪几个阶段?

更新时间:2021-12-06 来源:黑马程序员 浏览量:

IT培训班

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

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上。



猜你喜欢:

MapReduce编程开发实例——词频统计过程

MapReduce的工作流程是怎样的?

MapReduce中Maper组件用法介绍

黑马程序员python+大数据培训课程

分享到:
在线咨询 我要报名
和我们在线交谈!