yarn任务调度--capacity scheduler(容量调度) / fair schedule

2019/2/19 星期二

yarn任务调度--capacity scheduler(容量调度) / fair scheduler(公平调度)
由于集群资源有限,当无法满足众多application 的资源请求时,yarn 需要适当的策略对application 的资源请求进行调度;
Scheduler 概述
Yarn 中实现的调度策略有三种:FIFO/Capacity/Fair Schedulers
(1)FIFO Scheduler:
将所有application 按提交的顺序排队,先进先出
优点---->简单易懂且不用任何配置
缺点---->不适合于shared clusters;大的应用会将集群资源占满从而导致大量应用等待

(2)Capacity Scheduler
将application 划分为多条任务队列,每条队列拥有相应的资源 在队列的内部,资源分配遵循FIFO 策略队列资源支持弹性调整:一个队列的空闲资源可以分配给“饥饿”队列(注意:一旦之前的空闲队列需求增长,因为不支持“先占”,不能强制kill 资源container,则需要等待其他队列释放资源;为防止这种状况的出现,可以配置队列最大资源进行限制)
任务队列支持继承结构

(3)Fair Scheduler
不需要为特定small application 保留资源,而是在需要执行时进行动态公平分配;动态资源分配有一个延后,因为需要等待large job 释放一部分资源 Small job 资源使用完毕后,large job 可以再次获得全部资源 Fair Scheduler 也支持在application queue 之间进行调度

原文地址:http://blog.51cto.com/12445535/2351785

时间: 2024-07-30 21:44:10

yarn任务调度--capacity scheduler(容量调度) / fair schedule的相关文章

YARN资源调度策略之Capacity Scheduler

背景 yarn默认使用的是最简单的FIFO调度器,即一个default队列,所有用户共享,分配资源也是先到先得,没有优先级之分.有时一两个任务就把资源全占了,其他任务吃不到资源造成饥饿,显然这样的资源分配是不合理的(在当今社会主义之中,我们要共同富裕啊).yarn还有两种资源调度器,capacity schedule和fair schedule,本文主要研究下capacity schedule. 什么是capacity schedule Capacity Schedule调度器以队列为单位划分资

YARN的capacity调度器主要配置分析

yarn中一个基本的调度单元是队列. yarn的内置调度器: 1.FIFO先进先出,一个的简单调度器,适合低负载集群.2.Capacity调度器,给不同队列(即用户或用户组)分配一个预期最小容量,在每个队列内部用层次化的FIFO来调度多个应用程序.3.Fair公平调度器,针对不同的应用(也可以为用户或用户组),每个应用属于一个队列,主旨是让每个应用分配的资源大体相当.(当然可以设置权重),若是只有一个应用,那集群所有资源都是他的. 适用情况:共享大集群.队列之间有较大差别. capacity调度

Fair Scheduler与Capacity Scheduler比较

1.Fair Scheduler Facebook开发的适合共享环境的调度器,支持多用户多分组管理,每个分组可以配置资源量,也可限制每个用户和每个分组中的并发运行作业数量:每个用户的作业有优先级,优先级越高分配的资源越多. 2.Capacity Scheduler Yahoo开发的适合共享环境的调度器,支持多用户多队列管理,每个队列可以配置资源量,也可限制每个用户和每个队列的并发运行作业数量,也可限制每个作业使用的内存量:每个用户的作业有优先级,在单个队列中,作业按照先来先服务(实际上是先按照优

Capacity Scheduler

Capacity Scheduler 特点 以队列为单位划分资源,每个队列可设定一定比例的资源最低保证和使用上限,同时,每个用户也可设定一定的资源使用上限以防止资源滥用.而当一个队列的资源有剩余时,可暂时将剩余资源共享给其他队列.总之,Capacity Scheduler主要有以下几个特点: 容量保证:管理员可为每个队列设置资源最低保证和资源使用上限,而所有提交到该队列的应用程序共享这些资源 灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则

公平调度和容量调度的区别

公平调度是以pool为单位分配任务slots的,容量调度以queue的方式分配tasktracker的,当都只有一个job的时候,两种调度器都可以利用整个集群的资源,在每个pool内部可以是以FIFO方式调度也可以是公平方式调度,但是在queue内部只能是以FIFO方式调度,这是公平调度和容量调度的一个区别,虽然在queue内部可以设置优先级但是并不支持抢占,在pool内部是支持抢占的,就是可以为某个pool(通常是生产上的用户)分配最低的任务slot,当这个pool得不到最低的资源的时候他就会

十六:mapreduce程序在yarn集群中的调度过程

mapreduce程序在yarn集群中的调度过程: 1.客户端想ResouceManager提交一个job作业,申请运行一个MR的程序,RPC调用 2.ResourceManager返回一个由创建的jobid目录. 3.在HDFS该目录下有一个以jobid命名的目录并,写入job.xml和job分片数据,job.jar,jobConfinger 4.通知RM,job的资源文件提交完毕. 5.初始化一个任务 然后放到队列中去 6.nodemanager 和ResouceManager 保持心跳进行

Hadoop-2.2.0中文文档—— MapReduce 下一代--容量调度器

开始->运行->gpedit.msc,打开策略组编辑器,在树状菜单中选 择计算机配置->管理模板->终端服务,在右侧窗口中打开"限制 连接数量",选择"已启用",修改"TS允许的最大连接数",确定 . 完成以上两步可以解决远程连接最大值你能为3个(包括本地控制台 )的问题.如果需要使多用户可以同时使用同一个用户名登录远程连 接,那么还需要进行一下设置: 开始->运行->tscc.msc,打开终端服务配置,点击&

Fair Scheduler中的Delay Schedule分析

延迟调度的主要目的是提高数据本地性(data locality),减少数据在网络中的传输.对于那些输入数据不在本地的MapTask,调度器将会延迟调度他们,而把slot分配给那些具备本地性的MapTask. 延迟调度的大体思想如下: 若该job找到一个node-local的MapTask,则返回该task:若找不到,则延迟调度.即在nodeLocalityDelay时长内,重新找到一个node-local的MapTask并返回: 否则等待时长超过nodeLocalityDelay之后,寻找一个r

Hadoop-2.4.1学习之容量调度器

调度器在计算机世界中占有重要地位,从操作系统到大型应用系统都可见其身影,做为分布式应用系统的典范Hadoop以可插拔的方式提供了调度器的功能,这为实现自定义的调度器提供了接口.Hadoop内置了两种类型的调度器,分别为:CapacityScheduler<和FairScheduler,本篇文章将学习CapacityScheduler.CapacityScheduler允许多个用户共享一个大的集群,并为每个用户分配指定的容量,这样每个用户的应用程序就可以在所分配的容量范围内快速获得资源,Capac