MR运行流程

MapReduce是一种基于分而治之的计算框架,它通过map阶段对输入数据切片并处理,然后在reduce阶段合并结果。map阶段中,数据经过分区、排序和溢写到磁盘。reduce阶段则通过网络获取map的输出,进行数据合并和业务处理。这一过程的关键在于优化内存使用,减少磁盘IO和网络带宽消耗。
摘要由CSDN通过智能技术生成

MapReduce实际上就是一种分而治之的思想,简单来说就是由map进行分解和reduce进行合并数据的过程。

具体的说,map端先对输入的数据进行切片(input split),每个切片都由一个map进行处理,map处理后的结果存储到环形内存缓冲区。由于该环形内存缓冲区存储为100M,当超过其阈值80%时,会将该缓冲区中的数据写入本地所创建的溢写文件,之后对缓冲区中的数据进行分区(hash分区)、排序(快速排序)以及合并到磁盘中。

reduce通过获取jobtracker中维护的整个集群的宏观信息,从map中fetch磁盘中对应的输出位置即可。由于reduce本身也具有环形内存缓冲区,其阈值也是80M,将该缓冲区的数据写入溢写文件中,后台线程不断将小数据文件合并为有序的大文件(归并排序),合并后的数据交给reduce作为输入,并执行内部的业务逻辑代码进行处理,最终输出到hdfs/本地。

ps:

  • 合并的目的:1、尽量减少写入磁盘的数据量;2、减少数据传输到下一个阶段的数据量。

  • hash分区:决定将哪些数据分配给哪个reduce。

  • shuffle阶段:从map任务的输出到reduce任务的输入。最致命的问题是网络带宽。

本质:1、尽可能减少网络带宽带来的不必要的消耗;

2、(排序和合并)优化内存使用,减少磁盘的IO操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值