Yarn的架构组件、运行原理和应用提交过程详解(ResourceManager、NodeManager、ApplicationMaster、Container、JobHistoryServer等)

本文深入解析Apache Hadoop YARN的架构组件,包括ResourceManager的调度器和应用程序管理器、NodeManager的角色、Container作为资源抽象,以及ApplicationMaster的职责。YARN作为一个通用资源调度平台,支持多种分布式计算程序,如MapReduce、Spark和Storm。
摘要由CSDN通过智能技术生成

一、概述:
在这里插入图片描述
Apache Hadoop YARN(Yet Another Resource Negotiator)是Hadoop的子项目,为分离Hadoop2.0资源管理和计算组件而引入,是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而Mapreduce等运算程序则相当于运行于操作系统之上的应用程序。
在这里插入图片描述
关于Yarn,有几点需要明白的是:

  • 1)实际上,Yarn并不清楚用户所提交程序的运行机制是什么;
  • 2)Yarn只负责提供运算资源的调度(用户程序向Yarn申请资源,Yarn就负责分配资源);
  • 3)Yarn中的主管角色是ResourceManager,而具体提供运算资源的角色是NodeManager;
  • 4)Yarn框架与运行的用户程序完全解耦,这就意味着在Yarn上面可以运行各种类型的分布式运算程序(Mapreduce只是其中的一种),比如mapreduce、storm程序,spark程序……;
  • 5)Spark、Storm等运算框架都可以整合在Yarn上运行,只要他们各自的框架中有符合Yarn规范的资源请求机制即可;
  • 6)Yarn就是一个通用的资源调度平台,企业中以前存在的各种运算集群都可以整合在一个物理集群上,提高资源利用率,方便数据共享。

二、架构组件

类似HDFS,YARN也是经典的主从(master/slave)架构
YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成,各组件的作用如下图所示:
在这里插入图片描述
1、ResourceManager
ResourceManager是YARN中主的角色
RM是一个全局的资源管理器,集群只有一个active的对外提供服务

  • 负责整个系统的资源管理和分配
  • 包括处理客户端请求
  • 启动/监控 ApplicationMaster
  • 监控 NodeManager、资源的分配与调度
    它主要由两个组件构成:
  • 调度器(Scheduler)
  • 应用程序管理器(Applications Manager,ASM)

调度器Scheduler:

  • 调度器根据队列、容量等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。
  • 需要注意的是,该调度器是一个“纯调度器”
    • 它不从事任何与具体应用程序相关的工作,比如不负责监控或者跟踪应用的执行状态等,也不负责重新启动因应用执行失败或者硬件故障而产生的失败任务,这些均交由应用程序相关的ApplicationMaster完成。
    • 调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位用一个抽象概念“资源容器”(Resource Container,简称Container)表示,Container是一个动态资源分配单位,它将内存、CPU、磁盘、网络等资源封装在一起,从而限定每个任务使用的资源量。

应用程序管理器Applications Manager,ASM:

  • 应用程序管理器主要负责管理整个系统中所有应用程序
  • 接收job的提交请求
  • 为应用分配第一个 Container 来运行 ApplicationMaster
    • 包括应用程序提交
    • 与调度器scheduler协商资源以启动 ApplicationMaster
    • 监控 ApplicationMaster 运行状态并在失败时重新启动它等

2、NodeManager
在这里插入图片描述
NodeManager 是YARN中的 slave角色
NodeManager :

  • 当一个节点启动时,它会向
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值