理解YARN Scheduler

本文详细介绍了YARN中的资源调度器,包括Capacity Scheduler和Fair Scheduler的工作原理、配置选项和公平性策略。内容涵盖了队列配置、优先权抢占、延迟调度以及资源公平性的概念,帮助读者理解YARN如何实现集群资源的有效分配。
摘要由CSDN通过智能技术生成

介绍

在YARN中,资源调度器(Scheduler)是ResourceManager中的重要组件,主要负责对整个集群(CPU,内存)的资源进行分配和调度,分配以资源Container的形式分发到各个应用程序中(如MapReduce作业),应用程序与资源所在节点的NodeManager协作利用Container完成具体的任务(如Reduce Task)。

Scheduler以可插拔的形式来配置,框架默认提供了三种Scheduler:

1)FIFO Scheduler:
先进先出即先来后到。作业提交作业作为资源分配优先级的重要因素。

这里写图片描述

2)Capacity Scheduler:
以Capacity为中心,把资源划分到若干个队列中,各个队列内根据自己的逻辑分配资源。例如下图中队列A可以调度的资源可以占80%,队列B占有剩下的20%,各队列接受相应的作业请求,在自己的资源中分配。

这里写图片描述

3)Fair Scheduler:
秉承公平性原则,尽可能让各个作业得到的资源平均。下图中的作业2提交之后,原本Job1占有的资源拨出一般给作业2,从而达到“公平”。

这里写图片描述

Capacity Scheduler配置

采用Capacity调度的集群,资源被划分到一系列的Queue中,每个队列管理整个集群资源的一部分。队列内部可以再嵌套,形成层级结构。队列内资源采用FIFO的方式分配。

通常情况下,作业不能使用超过队列容量的资源,但是如果一个队列中有多于一个的作业,并且有空闲的资源,则调度器会为作业分配资源,即使这会导致队列超出容量限制。该特性叫队列弹性(queue elasticity).为了避免队列占用过多其他队列的资源,可以配置一个最大容量,队列只能使用该容量以内的资源,但是会牺牲一定的弹性。

Scheduler配置

假设我们有下面的队列层次:

  • root
    • prod
    • dev
      • eng
      • science

在这个层次结构中,root队列下定义了prod和dev两个队列,假设占有集群资源容量的比例分别为40%和60%。dev下又分为各占50%容量的eng和science队里。下面展示的是该结构下的一个配置文件(capacity-scheduler.xml):

<configuration>
  <property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>prod,dev</value>
  </property>

  <property>
    <name>yarn.scheduler.capacity.root.dev.queues</name>
    <value>eng,science</value>
  </property>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
YARN调度器是用于分配和管理集群资源的组件。YARN支持多种调度器,包括Fair Scheduler(公平调度器)、Capacity Scheduler(容量调度器)和FIFO Scheduler(先进先出调度器)。 Fair Scheduler是一种公平调度器,它根据预先配置的规则将资源分配给正在运行的应用程序。它允许大任务和小任务在提交的同时获得一定的系统资源,避免了大任务阻塞小任务的情况。\[2\] Capacity Scheduler是一种容量调度器,它允许对集群资源进行细粒度的划分和管理。每个队列都被分配了一定的资源,并且可以限制每个队列执行的作业数量。这使得不同的应用程序可以共享集群资源,提高了资源利用率。\[2\] FIFO Scheduler是一种先进先出调度器,它按照应用程序提交的顺序将其排成一个队列,并按照顺序分配资源。这是最简单和最容易理解的调度器,但不适用于共享集群,因为大任务可能会阻塞其他任务的执行。\[2\] 根据你提供的引用内容,Fair Scheduler的配置可以在YARN配置文件中的yarn.resourcemanager.scheduler.class属性中指定为org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler。\[1\] 总之,YARN调度器根据不同的需求和场景,提供了多种调度策略,以便更好地管理和分配集群资源。 #### 引用[.reference_title] - *1* [yarn 的三种 scheduler](https://blog.csdn.net/qq_34077611/article/details/79893977)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [YARN调度器(Scheduler)详解](https://blog.csdn.net/lovedieya/article/details/107447102)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [YARN的调度器Scheduler](https://blog.csdn.net/CyAurora/article/details/119277073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值