《Hadoop实战第2版》Yarn学习笔记一(原理)

总体内容:1、MR局限性,

  2、第二代MR(yarn)主要思想架构

一、Hadoop MapReduce框架的局限性

 1、JobTracker单点瓶颈。由于JobTracker负责作业的分发、管理和调度,还要和集群中所有的节点保持heartbeat通信,

了解机器的运行状态和资源情况,随着集群的数量和提交job数量的增加,JobTracker任务量随之上涨,造成JobTracker

内存和网络带宽快速消耗,成为单点瓶颈(集群作业的中心点和风险的核心)。

 2、TaskTracker端,由于作业分配信息过于简单,造成一个node含有多个资源消耗多或运行时间长的任务,使作业单点

失败或等待时间过长。

3、作业延迟过高。在mr前,taskTracker汇报情况-->JobTracker分配作业-->TaskTracker开始运行。由于通信延迟造

成任务启动时间过长。最显著的影响是小作业并不能及时完成。

4、变成框架不够灵活。MR框架限制了编程的模式及资源的分配。

  

二、yarn(MapReduce V2主要思想架构)

主要思想(围绕着思想-->名词解释/作用-->整体结构-->详细介绍--》)

a、思想

 1、将JobTracker的集群资源管理和作业管理进行分离(分离出来的集群资源管理由全局的资源管理器

 (ResourceManager)管理,分离出来作业管理由针对每个作业的应用主体(ApplicationMaster)管理)

 2、TaskTracker演变成节点管理器(NodeManager)。

 b、名词解释/作用

*全局资源管理器(ResourceManager):(负责集群的资源管理和调度)整个集群中资源最终分配者

*针对每个作业的应用主体(ApplicationMaster):(负责引用程序相关事务,比如任务调度、任务监控和容错)

 与资源管理器通信获取资源,与节点服务器配合完成节点的Task任务

*节点管理器(NodeManager):NodeManager 是 Yarn 每个节点的代理,在hadoop集群中负责计算个字的节点。

 这包含同ResourceManager(RM)保持日期同步,监督container的生命周期,监控container资源的使用情况,跟踪node 心跳,

 日志管理和一些可以被不同YRAN应用程序使用的辅助服务。

c、整体结构(yarn结构图)从抽象到具体。



 d、详细介绍

  1、资源管理器ResourceManager(RM)

   根据功能划分成两个组件:调度器、应用管理器。

  *调度器(Scheduler):

 1)根据集群中容量、队列和资源等限制,将资源分配给各个正在运行的应用,

 2)负责资源的分配和调度但不负责监控和重启任务

   3)处理客户端请求

  *应用管理器(ApplicationManager):

 1)负责接收作业,协商获取第一个资源容器用于执行应用的任务主体

 2)重启失败的应用主体分配容器

  2、节点管理器(NodeManager)

  节点管理器是每个节点的框架代理,具体功能如下:

1)负责启动应用的容器,监控容器的资源使用(CPU、内存、带宽等),然后汇报给调度器

  2)应用对应的应用主题,通过协商从调度器处获取资源容器。

   3) 跟踪监控容器的状态和应用执行的情况。

  3、资源容器(ResourceContainer / Container)

  主要职责就是运行、保存或传输应用主体提交的作业或需要存储和传输的数据。

 (数据包含Cpu、内存等多维度的资源以及环 境变量、启动命令等任务相关运行的信息)

  4、应用主体

  应用主体和应用是一一对应的。主要职责如下:

 1)与调度器协商资源。

 2)与节点管理器合作,在对应的容器中运行对应的组件task,并监控这些task任务。

 3)如果容器(Container)出现故障,应用主体重新向调度器申请其他资源。

4)计算应用程序所需的资源量,并转换成调度器可识别的协议信息包。

5)在应用主题出现故障后,应用管理器会负责重启它

  应用主体有一下组件:


1)事件调度组件:是应用主体中各个组件的管理者,负责为其他组件生成事件。

2)容器分配组件:负责将Task的资源请求翻译成发送给调度器的应用主体的资源请求,并与资源管理器协商获取资源。

3)用户服务组件:将作业的状态、计数器、执行进度等信息反馈给Hadoop MapReduce的用户

4)任务监听组件:负责接受Map或Reduce Task发送的心跳信息。

5)任务组件:负责接收Map和Reduce Task形成的心跳信息和状态更新信息。

6)容器启动组件:通过使节点管理器运行来负责容器的启动。

7)作业历史事件处理组件:将作业运行的历史事件写入HDFS。

8)作业组件,维护作业和组件的状态。


三、yarn作业执行流程
 
  步骤1、MapReduce框架接受用户提交的作业,并为其分配一个新的应用ID,并将应用的定义包上传到HDFS上用户的
应用缓存目录中,然后提交此应用给应用管理器。
 步骤2、应用管理器同调度器协商获取运行应用主体所需的第一个资源容器。
 步骤3、应用管理器在获取的资源容器上执行应用主体。
 步骤4、应用主体计算应用所需要资源,并发送资源请求到调度器。
 步骤5、调度器更具自身统计的可用资源状态和应用主体的资源请求,分配合适的资源容器给应用主体。
 步骤6、应用主体与所分配容器的节点管理器通信,提交作业情况和资源使用说明。
 步骤7、节点管理器启用容器并运行任务。 
 步骤8、应用主体监控容器上任务的执行情况。
 步骤9、应用主体反馈作业的执行状态信息和完成状态。

 总结:主要理解思想和架构就可以了,软件更新速度比较快。了解数据结构(数据怎么存,数据之间关系。)然后
了解他们 的中间环节就可以了。简单点说就是了解数据开始时候是什么状态存储,中间经过什么步骤变成什么,相 互间
如何联系就行了。
 
 
比较喜欢http://blog.csdn.net/liuwenbo0920/article/details/43304243里面的最后一段话具体如下:



  



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值