Hadoop学习之MapReduce运行流程

MapReduce运行流程:


1)MR程序启动后,会先启动MRAppMaster,MRAppMaster会根据job的信息计算需要的maptask数量,向集群申请资源,启动maptask进程;

2)maptask启动后,根据指定的数据切片(逻辑切片)进行数据处理:

a.根据指定的InputFormat获取RecordReader,读取数据,解析成kv对;

b.将kv对传递给用户定义的map方法,做数据处理,映射成另外的kv对形式,并存放在一个环形缓冲区中,默认100M;

c.环形缓冲区中数据达到一定阈值后会不断溢出到磁盘,溢出的过程中,会进行shuffle处理:

1.partitioner进行分区(默认分区方法为:对key进行哈希然后模除reducer个数);

2.根据key排序(快速排序);

3.combiner根据key进行局部合并。

d.将溢出的小文件合并成一个大文件,并进行shuffle处理,此时的排序算法为归并排序。

3)MRAppMaster监测到一定数量的maptask任务完成后,根据用户指定的参数启动相应数量的reducetask进程,并告知reducetask要处理的分区范围;

4)reducetask启动后会根据MRAppMaster告知的待处理数据所在位置,根据自己的分区号,从maptask端fetch自己分区号的数据,并进行合并(归并排序),此时所有的shuffle过程就结束了。然后reducetask会根据key进行分组,调用reduce()方法进行数据处理,收集运算结果kv,调用用户定义的outputformat将结果输出到外部存储。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值