MR计算模型四

YARN是hadoop2.0中的资源管理系统,他的基本设计思想是将MRv1中的JobTracker的拆分成了两个独立的服务:一个全局的资源管理器的ResourceManager和每个应用程序特有的ApplicationMaster

  1. --ResourceManager负责整个系统的资源管理和分配。
  2. --ApplicationMaster负责单个应用程序的管理。

Yarn总体上仍然是Master/Slave结构

  1. --ResourceManager为Master,负责对各个NodeManager上的资源进行统一管理和调度。
  2. --当用户提交一个应用程序时,需要提供一个用于跟踪和管理这个程序的ApplicationMaster,他负责向ResourceManager申请资源,并要求NodeManager启动可以占用一定资源的任务。
  3. --由于不同的ApplicationMaster被分布到不同的节点上,因此他们之间不会相互影响。

YARN组成结构ResourceManager

  1. ResourceManager是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要有两个组件构成:
  2. --调度器:调度器根据容量、队列等限制条件,将系统中的资源分配给各个正在运行的应用程序。资源分配单位用一个抽象概念“资源容器”表示。
  3. --应用程序管理器:ApplicationManager负责管理整个系统中所有应用程序,包扣应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败是重新启动它等。

YARN组成结构ApplicationMaster

  1. 用户提交的每个应用程序均包含了1个ApplicationMaster,主要功能包括:
  2. 与ResourceManager调度器协商以获取资源
  3. 与NodeManager通信以启动/停止任务。
  4. 监控所有任务运行的状态,并在任务运行失败时重新为任务申请资源已重启任务。

YARN组成结构NodeManager

  1. NodeManager是每个节点上的资源和任务管理器:
  2. 一方面,他定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行状态。
  3. 另一方面,他会接收并处理来自ApplicationMaster的Container启动/停止等各种请求。

YARN组成结构Container

  1. Container是yarn中的资源抽象,他封装了某个节点上的多维度资源,入内存、CPU、磁盘、网络等。
  2. 当ApplicationMaster向ResourceManager申请资源时,ResourceManager为ApplicationMaster返回的资源便是用Container表示的。YARN会为每个人物分配一个container,且该任务只能使用该container中描述的资源。

YARN工作流程

  1. 当用户想YARN中提交一个应用程序后,YARN将两个阶段运行该应用程序:
  2. 第一阶段是启动ApplicationMaster,
  3. 第二阶段是由ApplicationMaster创建应用程序,为它申请资源,并监控它的整个运行过程,直到运行完毕。

详细流程1

  1. 用户向YARN中提交应用程序,包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
  2. ResourceManager为该应用程序分配第一个container,并与对应的NodeManager通信,要求他在这个container中启动应用程序的ApplicationMaster。
  3. ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后她将为各个任务申请资源,并监控它的运行状态,直到运行结束。

详细流程2

  1. ApplicationMaster采用轮训的方式通过RPC协议向ResourceManager申请和领取资源。
  2. 一旦ApplicationMaster申请到资源后,便于对应的NodeManager通信,要求他启动任务。
  3. NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。

详细路程3

  1. 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败是重新启动任务。
  2. 在应用程序运行过程中,用户可以随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。
  3. 应用程序运行完毕后,ApplicationMaster向ResourceManager注销并关闭自己。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值