MapReduce处理流程

本文详细介绍了MapReduce的处理流程,包括切片规划、数据读取、Map任务执行、溢写与合并、Reduce任务处理等关键步骤,揭示了大规模数据处理背后的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MapReduce处理流程

在这里插入图片描述
1)把输出目录下文件按照一定的标准进行逻辑切片,形成切片规划

​ 默认为,split size=Block size=128M。每一个切片由一个MapTask处理

2)TextInputFormat对切片中的数据进行一行一行的读取,把每一行文本内容解析成键 值对。key是每一行的起始位置,value是本行的文本内容

3)调用map方法,并将mapper结果输出到环形缓冲区数据分区在此之前完成(job.setNumReduceTask()),partition对应Reducer。

​ 内存缓冲区大小为100M,内存缓冲区达到80%,进行spill溢出溢写在此之前对key进行排序,溢写到磁盘,如果设置combiner,运行combiner,进行merge合并(归并排序)小文件成大文件(每merge一次就排序一次

4)当maptask处理完自己负责的切片数据之后,把结果保存在自己运行机器的某个目录下,等待着ReduceTask的拉取

ReducerTask

5)Reducer任务会主动从Mapper中拉取其输出的键值对,拉取到Reducer缓冲区

6)对数据进行merge sort合并排序

7)然后进行grouping分组,key相同的为一组

8)同一分组的数据组成一个新的kv对

9)调用reduce方法,将结果输出到HDFS文件中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值