WordCount的Map/Reduce主要分为如下几个阶段:

Hadoop MR 核心原理

WordCount运行设计

在这里插入图片描述WordCount的Map/Reduce主要分为如下几个阶段:

  • Mapper主要负责任务的初级处理, Reducer主要负责数据的合并;
  • Mapper端的操作为(读取数据/按行处理/每行按空格切分单词/数据存入HashMap/将HashMap按照范围切分/HashMap
    数据传递给下游, 即Reducer端)
  • Reducer端的操作为(累加操作/输出操作)
  • NodeManager处理如下操作: MapTask分配 / ReduceTask分配 /
  • MapTask 与ReduceTask的串链(包括数据的切分) / MapTask& ReduceTask失败机制

Job提交过程(WordCount为例子)

在这里插入图片描述Job的提交流程如上所示:

  • Client端首先根据数据, 对文件进行切分(切分后即知道需要几个MapTask进行处理), 切分后提交给Yarn,即ResourceManager. 提交给Yarn时, 主要包括job.split/a.jar/job.xml三个文件.
  • Yarn首先会启动一个MR Process运行这个程序, 即运行Jar包.
  • MR Process通过job.split等得知需要启动几个MapTask, 启动MapTask执行Map的操作.
  • MapTask通过InputFormat去既定的资源中读取数据, 分别执行map()操作,
  • 随后将自己处理后的数据放入context.(context.write(xx,xx)😉 随后通过OutputCollect及ReduceTask的相关信息, 将处理过的数据传递给ReduceTask.
  • ReduceTask得到数据后, 通过map()进行遍历处理. 处理结束后, 通过OutputFormat将数据存放在约定位置.

注意: 值得一提的是ReduceTask和MapTask在运行map()方法前都会通过setup()方法进行初始化操作. 运行map()方法后, 会通过cleanup()方法进行处理操作. 其中map()方法可能执行多次, 而初始化和结束方法都只执行一次.

InputFormat与数据切片

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值