最易懂的MapReduce工作流程详解!

本文详细介绍了MapReduce的工作流程,包括输入数据阶段、Mapper阶段、Shuffle阶段、Reducer阶段和输出数据阶段。在Mapper阶段,数据经过用户自定义的业务逻辑处理后,进入Shuffle阶段进行分区、排序和归并。Reducer阶段则负责拉取数据,处理相同的key,并将结果输出。
摘要由CSDN通过智能技术生成

MapReduce工作流程原理详解

(1)输入数据(Input):

客户端submit()(客户端submit()前就已经将数据进行逻辑上的规划,也就是切片了),客户端将数据信息(job.split , wc.jar等)提交给Yarn的ResourceManager进行处理,ResourceManager启动NodeManager和ApplicationMaster,ApplicationMaster根据接收到的job.split信息,开启与切片个数相同个数的MapTask,MapTask启动后,用InputFormat(默认是TextInputFormat)的RecorderReader按行读取文件,然后传给Mapper(因为Mapper的输入key是偏移量,输入value就是读取的一行内容)

(2)Mapper阶段:

接收到RecorderReader传过来的K,V后,在重写的map()方法中进行用户自定义的业务逻辑操作,然后通过context.write(outK,outV)将数据输出到OutputCollector,也叫环形缓冲区

(3)Shuffle阶段:

①环形缓冲区,分为两个部分,左边存储右边数据相对应的索引(index – 索引,partition – 分区,keystart – 标记数据存储在哪,valuestart – 标记数据存储在哪),右边存储数据(map阶段的key – 偏移量,

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值