MapReduce之Map,Reduce,Shuffle,Yarn的机制+流程图

MapReduce详细工作流程之Map阶段
在这里插入图片描述
例如图中所示:

  1. 我们要处理一个200M的文件
  2. 切片: 在client提交之前,我们需要先将文件按照128M每块进行切片
  3. 提交: 提交到本地工作环境过Yarn来处理
  4. 提交时会把每个任务封装成一个job交给Yarn来处理,计算出MapTask数量,每个MapTask并行执行
  5. MapTask中执行Mapper的map方法,需要k,v作为键值对传递给map方法
    1. map方法会进行一系列逻辑操作,执行完成后,最后进行写操作
    2. 需要注意: map方法直接将结果写给reduce的话会制造太多IO操作,失效率变慢,效率降低,因此,map和reduce之间还有一段shuffle操作
  6. 每个MapTask中的map方法处理完相关逻辑后,先通过outputCollector向环形缓冲区写数据,环形缓冲区分为两部分,一部分是写于文件的元数据信息,另一部分是写入文件的真实信息,环形缓冲区默认大小是100M,当缓存容量达到默认大小的80%时,就会触发溢写(spill)

溢写: 这是一个并行的过程,不会占用map线程资源,整个缓冲区都有溢写比例spill.percent
,默认是0.8,如果map线程过于忙碌,同时溢写线程太慢,map()就会暂停执行去等待溢写完成

    • 1
      点赞
    • 1
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值