MapReduce总结

本文详细介绍了MapReduce的工作原理,包括输入过程、Map输出过程中的shuffle操作及三次排序的细节。此外,还解释了MapReduce中类型与Java的对应关系、context对象的作用以及reduce函数如何处理聚合后的中间结果。

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

1、MapReduce的输入过程
大多数使用HDFS上的文件作为输入,通过FileInputFormat 进行切分为输入分片InputSplit,切分数量为 文件大小/分片大小,应尽量使输入分片大小和块的大小相同,以提高Map任务的计算数据的本地性进行提升计算性能。
partition 分区,sort 排序(快速排序、归并排序)算法。


2、map输出过程 shuffle进行数据混洗--》对Map结果文件数据进行分区归并排序


3、排序进行了3次:

Map输出到环形缓冲区,进行分区后按照健进行内排序;map任务完成前进行写文件时进行归并排序把溢写文件归并为完整的Map文件;进行把多个Map文件进行归并排序。

4、类型和Java对应关系
Java     Writable
string    Text
int       IntWritable


5、context 对象保存了作业运行的上下文信息:作业配置信息、InputSite信息、任务ID.


6、reduce 函数接受的是values是Iterate,经过聚合后的中间结果。


7、main通过文件作为输入,map通过行号和行内容作为输入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值