对MapReduce&Yarn的深刻理解

1.MapReduce详细工作流程之Map阶段
在这里插入图片描述

1.首先有一个待处理的文本
ss.txt 假设为200M大小
2.在客户端submit()之前,获取待处理的数据的信息,然后根据参数配置,形成一个任务分配的规划 。(默认128m一个数据块)
ss.txt 0-128 任务1
ss.txt 128-200 任务2
3.提交信息
Job.split(任务切片信息)
wc.jar(需要提交的jar包)
Job.xml(xml配置文件)
将这三个文件从MapReduce客户端提交到Yarn上的ResourceManager上进行处理。
4.Yarn上提交时,会将每个任务封装成一个job,提交给yarn处理,ResourceManager会计算出MapTask数量(和切片数量一致),然后RM把任务分配给NodeMamager,在MR appmaster允许后,NodeManager就会来处理相应的任务(Maptask1&Maptask2),每个任务会并行执行。
5.MapTask会执行Mapper中的map方法,此方法需要传入k,v值,所以我们需要先从数据中获取k,v值,以作为输入的参数
具体做法是:首先调用InputFormat方法,默认为TextInputFormat方法,在此方法中调用createRecordReader方法,将每个块封装为(k,v)键值对,然后传递给map方法。
6.数据进入MapTask中以后会进行Map端的逻辑运算,运算完后,会进行写操作。
7.map端产生的数据如果直接进行写操作,写入到reduce中,会直接操作磁盘,这样就会进行大量的io操作,效率太低,所以map端和reduce端之间会进行一个shuffle操作。
所以map端产生数据后会通过outputCollector向环形缓冲

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值