MapReduce运行机制

mapTask工作机制

1、inputFile通过split被逻辑切分为多个split文件,TextInputFormat按行读取文件(每一个split文件对应一条MapTask线程)

2、文件被读取后,执行自定义mapper任务,生成K2、V2键值对

3、执行完毕后数据被加载到环形缓冲区(字节数组,可重复使用,默认大小100M,溢出率:0.8),当数据大小超过缓冲区溢出阈值,溢出部分数据开始进行落盘

4、落盘数据执行过程:1、分区(默认分区方式:使用K2哈希值作为分区标准),2、排序(快排),3、combiner(如果有combiner,这一步可以减少写到磁盘的数据量)执行完毕后,将多个小文件存入磁盘

5、数据被读取完毕后,会将所有数据进行merge(包括磁盘中的多个小文件和内存中的数据)

6、数据合并完毕后,再进行一次combiner,然后再次多所有数据进行一次排序(归并)

7、数据处理完毕后,生成临时文件,等待Reduce读取(定义多少分区便会生成多少个临时文件)

ReduceTask工作机制

1、复制MapTask处理完毕的数据到Reduce缓冲区(默认100M),当数据大小溢出时会生成小文件,然后将文件写入磁盘,如果设置了combiner,会对相同分区和相同key的数据进行排序

2、当前ReduceTask需要处理的数据读取完毕后,对所有的文件进行merge

3、对合并完毕的文件进行排序(归并/分组)

4、生成中间文件

5、自定义的Reducer对数据进行处理,然后将文件输出到HDFS系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值