Mapreduce框架-reduceTask工作原理

ReduceTask的工作原理

1.reduceTask获取map阶段的输出-copy阶段

两点说明:
(1)map任务和reduce任务不一定在同一台机器上。
(2)map任务和reduce任务不是只有一个。可能有多个map任务和多个reduce任务同时执行。

1.reduce需要通过内部通信将map任务的输出拷贝到reduce。
2.需要将所有的map任务的输出拷贝到不同的reduce。一个reduce处理一个分区的所有map任务输出。
在这里插入图片描述

2.reduceTask获取map阶段的输出-合并和排序

将map输出拷贝到reduce后,需要将文件进行合并为一个文件。需要对合并以后的文件内容进行排序。完成排序以后的合并文件就是reduce任务的输入文件。

3.reduce阶段任务处理【开发】

(1)输入文件是已经完成排序的。
(2)文件的内容,都是k.v的形式。相同的key,可能会有很多的不同的value。
所以在reduce任务中,输入k,v的关系实际上是一个key->list关系。
(3)将key对应的集合数据进行遍历,求和即合并。
(4)合并以后的结果,变成了k.v的一对一关系。实际就是k和求和后的数据汇总的一对一关系。
(5)将数据输出。

4.mapreduce输入输出文件处理

将reduceTask的处理结果写入到磁盘。与mapTask读取文件的内容过程是对应的。
在这里插入图片描述
(1)文件的输入/输出格式进行处理,不同的文件使用不同文件输入/输出格式。
默认TextInputformat/TextOutputformat.
(2)读数据的读入/写出使用RecorderReader/RecoderWriter

5.reduceTask任务的数量确定

默认为1。可以在程序中根据业务需求设置reduceTask的数量。
也就是说reduceTask数量是由程序员根据业务场景决定的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值