Hadoop权威指南读书笔记(5) - MapReducer工作过程

  本文对应原书中第七章。其中的知识对于进一步调优MapReduce非常重要。我们先介绍MapReduce作业的运行过程,再介绍它的容错机制,然后会介绍其中的Shffle和Sort过程。

MapReduce工作过程

  我们先用一张图来对整个过程有一个整体把握:
这里写图片描述
  这里面有5个组件:

  • client:提交MR作业
  • Yarn Resource Manager:协同调度集群的全部资源
  • Yarn Node Manager:启动和监视集群中的容器
  • MapReduce Application Master:协同MR的tasks。它们都运行在由resource manager分配然后由node manager管理的容器中。
  • 分布式文件系统

一个MR作业由如下几个过程组成:

作业提交

  Job实例调用submit()方法提交一个作业,这个方法会创建一个JobSubmitter实例(图中第1步)。提交完作业后,waitForCompletion(如果代码中调用了的话)方法会每隔一秒查看作业的状态并且将变化(如果有的话)打印到终端。

  在JobSubmitter中会做如下事情:

  • 向Yarn RM中请求一个新的应用ID,分配给这个MR作业(第2步)。
  • 检查作业的输出需求。例如,如果输出目录已经存在,则不提交作业并且抛出一个异常。
  • 计算作业的输入切片(准确说是切片信息)。如果切片不能被计算出来(例如输入目录不存在),同样作业不会被提交并且发出一个异常。
  • 拷贝各种作业资源(例如作业的jar包,配置文件,切片信息等)到分布式文件系统下的一个被命名为job ID的目录下(第3步)。
  • 调用submitApplicatiion方法提交作业到Yarn RM(第4步)。

作业初始化

   当Yarn RM收到了submitApplicatiion方法中的请求。它将这个请求交给Yarn调度器。调度器会分配一个容器,然后Yarn RM在这个容器中启动一个AM(在NM管理下)(5a和5b)。

  AM是一个java应用,它的主类叫做MRAppMaster。这个类会创建一些记录对象,用来获取来自任务的报告(第6步)。然后会从分布式文件系统中获取切片信息(第7步)。为每一个分片创建一个map任务,而reduce任务的个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值