6 Yarn资源管理器

一、Yarn基本介绍

YARN是资源管理和调度平台,可为上层应用提供统一的资源管理和调度
资源管理是指管理集群的硬件资源,和内存、 CPU等(磁盘则由HDFS管理)
资源调度是指多个程序同时申请计算资源该如何分配,调度的规则。

Yarn具有通用性:不仅支持MapReduce程序,还支持Spark,Flink等各种计算程序

可以把Hadoop YARN理解为相当于一个分布式的操作系统平台,而MapReduce等计算程序则相当于操作系统上的应用程序, YARN为这些程序提供运算所需的资源(内存、 CPU等)

在这里插入图片描述

二、Yarn的架构和组件

Yarn官方架构图

在这里插入图片描述

Yarn三大组件:

①ResourceManager(集群物理层面):物理层面就是搭建机器必须要有点
②NodeManager(集群物理层面)
③ApplicationMaster(App Mstr) (App层面)

Client

Container容器(理解为一个机器里有很多个容器,用来隔离不同的程序)

ResourceManager(RM)
YARN集群中的主角色(老大),决定系统中所有应用程序之间资源分配的最终权限,即最终仲裁者。接收用户的作业提交,并通过NM分配、管理各个机器上的计算资源。
NodeManager(NM)
YARN中的从角色,一台机器上一个,负责本台机器上的资源管理。
根据RM命令,启动Container容器、监视容器的资源使用情况。并且向RM汇报资源使用情况。
ApplicationMaster(AM)
用户提交的每个应用程序内部均包含一个AM(因为每个程序都需要被协调管理)
应用程序内的“老大” ,负责程序内部各阶段的资源申请,监督程序的执行情况。

三、Yarn交互流程

MR作业的提交 Client–>RM(客户端和RM之间的交互,找RM要资源)
资源的申请 MrAppMaster–>RM(AM要资源也要向RM申请,并监控程序整个运行过程,直到它完成)
MR作业状态汇报 Container(Map|Reduce Task) -->Container(MrAppMaster)(AM跟程序内部各进程之间的通信)
节点的状态汇报 NM–>RM(节点的状态汇报,以看哪些节点还活着)

在这里插入图片描述

AppMaster(AM)是程序内部非常核心的角色!!要资源都要通过AM来申请。

四、Yarn的资源调度器Resource Schedule

属于ResouceManager的内部组件之一,资源调度的关键在于分配策略或分配算法的编写。RS来决定怎么分配资源。

在这里插入图片描述

Hadoop提供了三种调度策略(三种调度器)

FIFO Scheduler(先进先出调度器)、 Capacity Scheduler(容量调度器)、 Fair Scheduler(公平调度器)。
Apache版本YARN默认使用Capacity Scheduler。
如果需要使用其他的调度器,可以在yarn-site.xml中进行配置。

1.FIFO 调度器

FIFO Scheduler是一个先进先出的思想, 即先提交的应用先运行。适用于负载较低的小规模集群。当使用大型集群时,它的效率较低

优势:
无需配置、先到先得、易于执行
坏处:
由于先到先得的原则,因此高优先级的作业仍然需要等待
不适合共享集群

在这里插入图片描述

2.Capacity 调度器

Capacity Scheduler容量调度是Hadoop3.x默认的调度策略

该策略允许多个组织同时共享整个集群资源, 每个组织都可以获得集群的一部分计算能力。把整个集群划分为队列A和队列B,队列A处理大程序,队列B处理小程序。规避了FIFO调度中可能造成程序阻塞的情况。

在这里插入图片描述

企业中可以根据业务需求划分不同的队列,甚至可以划分为队列树
在这里插入图片描述

3.Fair Scheduler公平调度

Fair Scheduler叫做公平调度, 使所有应用可以同时获得相等的资源份额。
Fair Scheduler设计目标是为所有的应用分配公平的资源(对公平的定义通过参数来设置)
公平调度可以在多个队列间工作,允许资源共享和抢占。

有两个用户A和B,每个用户都有自己的队列。
A启动一个作业,由于没有B的需求,它分配了集群所有可用的资源。
然后B在A的作业仍在运行时启动了一个作业,经过一段时间, A,B各自作业都使用了一半的资源。
现在,如果B用户在其他作业仍在运行时开始第二个作业,它将与B的另一个作业共享其资源,因此B的每个作业将拥有资源的四分之一,而A的继续将拥有一半的资源。故保证的是用户之间的公平以及用户内部程序之间的公平

在这里插入图片描述

队列可以我们自己配置权重以按特定比例共享集群。同时允许资源共享:即当一个应用运行时,如果其它队列没有任务执行,则可以使用其它队列,当其它队列有应用需要资源时再将占用的队列释放出来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值