通俗理解MapReduce原理

初学mapreduce,通过对书本上的整理,简单归纳一下mapreduce的原理。
假设我们要处理的原始文件有8000万行记录,那么mapreduce是以什么样的原理对他进行处理的。
简化的MapReduce处理流程
MapReduce由一下几个部分组成:

  1. Mapper:映射器
  2. Mapper助理InputFormat:输入文件读取器
  3. Shuffle:运输队
  4. Shuffle助理Sorter:排序器
  5. Reducer:规约器
  6. Reduce助理OutputFormat:输出结果写入器

流程如图所示,分为以下几个步骤:

  1. 数据分片:
    把原始文件的8000万行记录由系统分配给100个Mapper来处理,每个Mapper处理80万行记录。相当于MapReduce通过数据分片的方式,把数据分发给多个单元来处理,这是分布式计算的第一步。
  2. 数据映射。
    数据分片以后,由InputFormat从文件的输入目录中读取这些记录,在由Mapper对记录进行解析,并重新组织成新的格式。最后由Mapper将自己处理的结果输出,等待Shuffle运输队取走结果。
  3. 数据混洗。
    由Shuffle运输队把获取的结果按照相同的键(Key)进行汇集,再把结果送到Sorter处进行排序处理,然后提交给Reducer。
  4. 数据归纳。
    Reducer收到传输过来的结果进行汇总与映射工作,得到最终计算结果。最后由OutputFormat把结果输出到指定位置。

上述分析最核心的就是Map任务和Reduce任务,通过Map任务把一个大任务分成很多小人物,关键就是这些小任务是同时运行的。再通过Reduce任务,把很多小任务的结果汇总起来,最后输出汇总结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值