ReduceTask 工作机制

ReduceTask 工作机制

在这里插入图片描述

概述:

ReduceTask 分了四个阶段,第一阶段是copy阶段,每一个ReduceTask会从所有的MapTask中拷贝同一个分区的数据,就是说每一个ReduceTask单独负责处理一个分区,互不影响。第二阶段是Merge阶段,首先我们假如有多个MapTask,每个MapTask都有相同的分区,ReduceTask要将所有相同分区的资料合并成一个大文件。这就是Merge阶段,将所有MapTask输出的文件,相同分区,合并成一个大文件。也就是说一个ReduceTask都要生成一个文件。接下来是sort阶段,合并以后就会归并排序,形成一个有序的大文件,进入到我们自定义的Reduce() 方法中。接着Reduce方法就会进一步操作我们的数据,这里需要注意,每一个key都会执行一次redeuce方法。在Map() 方法中,每一行数据都会执行一次map方法。

1.Copy阶段

ReduceTask会主动从所有MapTask上远程 拷贝同一分区数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。

2.Merge阶段:

在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。

3.Sort阶段:

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

4.Reduce阶段:

reduce()函数将计算结果写到HDFS上。

Shuffle机制

在这里插入图片描述

Map方法之后,Reduce方法之前的数据处理过程称之为Shuffle。(注意MapTask和 ReduceTask
范围是有重叠的,只是出发角度的问题)具体流程参考MapTask和ReduceTask。

问题)具体流程参考MapTask和ReduceTask。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值