mapreduce流程

本文详细介绍了MapReduce的处理流程。首先通过文件加载器加载数据并解析成键值对,调用map函数处理。输出数据经收集器到环形缓冲区,溢写磁盘前排序。ReduceTask拉取数据,归并排序、分组后调用reduce函数处理,最终将结果保存到文件。

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

1.通过FileInputformat的文件加载器加载指定路径,底层调用LineReader进行文件读取不同逻辑切片的数据文件(并行),并按行解析成键值对,其中key为每行相对于首行的偏移量,value为每一行的值,每个键值对调用一次map()函数;
2.用户写map()函数,对输入的<key,value>对进行处理,并输出新的<key,value>对;
3.输出的数据经过一个收集器收集后到达环形缓冲区(每个maptask对应一个),开始溢写数据,达到阈值后溢写到磁盘中,在进入磁盘前会进行一次排序,先按分区排序,再在同一分区内部按照key排序;
4.reduceTask启动多个线程从不同的maptask中拉取对应分区的数据(默认5个线程),并进行文件归并,再次进行一次排序(使用归并排序算法),分组,每组调用一次reduce方法,用户通过重写reduce函数,对输入的key、value进行处理,得到新的key、value输出结果;
5.将reduce输出的结果保存在文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值