yarn Fairscheduler与Capacityscheduler
Capacityscheduler
Capacityscheduler允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力。通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源,这样整个集群就可以通过设置多个队列的方式给多个组织提供服务了。除此之外,队列内部又可以垂直划分,这样一个组织内部的多个成员就可以共享这个队列资源了,在一个队列内部,资源的调度是采用的是先进先出(FIFO)策略。
Capacityscheduler的特点:
1.
容量保证:可为每个队列设置资源最低量和资源使用上限,所有提交到该队列的应用程序共享该队列中的资源;最小容量不是“总会保证最低容量”,可能会借给其他节点。
调度器总会选择当前资源使用率最低的队列,并为之分配资源。例如同级的队列A1,A2。它们最小容量均为30%。而 A1使用了12%,A2使用了10%,则调度器会优先将资源分给A2。
2.
灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列释放的资源会归还给该队列,这种资源灵活分配的方式明显可以提高资源的利用率;
多租户:支持多用户共享集群和多应用程序同时运行,为防止当个应用或者用户或者队列独占集群资源,可为之增加限制,比如设置一个用户或者应用程序可以分配的最大资源数、最大任务运行数;
3.
安全保证:每个队列有严格的ACLs列表规定它的访问用户,每个用户可以指定其他哪些用户允许查看自己应用程序的运行状态或者控制应用程序(比如kill);
4.
动态更新配置文件:管理员可以根据需要动态更改各种配置参数,以实现在线集群管理。
Fairscheduler
Fairscheduler的设计目标是为所有的应用分配公平的资源(对公平的定义可以通过参数来设置)。
举例子:假设有两个用户A和B,他们分别拥有一个队列。当A启动一个job而B没有任务时,A会获得全部集群资源;当B启动一个job后,A的job会继续运行,不过一会儿之后两个任务会各自获得一半的集群资源。如果此时B再启动第二个job并且其它job还在运行,则它将会和B的第一个job共享B这个队列的资源,也就是B的两个job会用四分之一的集群资源,而A的job仍然用集群一半的资源。
Fairscheduler的特点:
1.
支持资源抢占,允许调度器杀掉占用超过其应占份额资源队列的containers,这些containers资源便可被分配到应该享有这些份额资源的队列中。
当队列没有任务时,最小资源可以被其他队列抢走;当有新的任务进来时,如果集群有资源则获取资源,如果没有则会从其他低优先级的队列中抢到资源,执行任务。
抢占会降低集群的执行效率,因为被终止的containers需要被重新执行。
通过设置一个全局的参数yarn.scheduler.fair.preemption=true来启用抢占功能。
还有两个参数用来控制抢占的过期时间(这两个参数默认没有配置,需要至少配置一个来允许抢占Container):
- minimum share preemption timeout
- fair share preemption timeout
如果队列在minimum share preemption timeout指定的时间内未获得最小的资源保障,调度器就会抢占containers
2.
调度策略配置灵活:允许为每个队列单独设置调度策略(FIFO、Fair或DRF)
3.
提高小应用程序响应时间:采用最大最小公平算法,小作业可以快速获取资源并运行完成。
三种调度策略对比 :
FIFOScheduler分配资源的顺序和提交应用程序的顺序相同,不适用于共享集群。大的应用可能会占用所有集群资源,这就导致其它应用被阻塞。
CapacityScheduler中,有一个专门的队列用来运行小任务,但是为小任务专门设置一个队列会预先占用一定的集群资源,这就导致大任务的执行时间会落后于使用FIFO调度器时的时间。
FairScheduler中,我们不需要预先占用一定的系统资源,Fair调度器会为所有运行的job动态的调整系统资源。
yarn Fairscheduler与Capacityscheduler的更多相关文章
- yarn调度器 FairScheduler 与 CapacityScheduler
yarn FairScheduler 与 CapacityScheduler CapacityScheduler(根据计算能力调度) CapacityScheduler 允许多个组织共享整个集群, 每 ...
- YARN学习总结
YARN学习总结 前言 YARN(Yet Another Resource Manage,另一种资源协调者)是hadoop-0.23版本引入的的一个新的特性,可以说它是对原有Hadoop Mapred ...
- YARN中FIFO、Capacity以及Fari调度器的详细介绍
(1)FIFO Scheduler 将所有的Applications放到队列中,先按照作业的优先级高低.再按照到达时间的先后,为每个app分配资源.如果第一个app需要的资源被满足了,如果还剩下了资源 ...
- Hadoop YARN架构设计要点
YARN是开源项目Hadoop的一个资源管理系统,最初设计是为了解决Hadoop中MapReduce计算框架中的资源管理问题,但是现在它已经是一个更加通用的资源管理系统,可以把MapReduce计算框 ...
- Apache Hadoop下一代MapReduce框架(YARN)简介 (Apache Hadoop NextGen MapReduce (YARN))
英文看着头大,先试着翻译一下. E文原文:http://archive.cloudera.com/cdh5/cdh/5/hadoop/hadoop-yarn/hadoop-yarn-site/YARN ...
- 一:yarn 介绍
yarn的了出现主要是为了拆分jobtracker的两个核心功能:资源管理和任务监控,分别对应resouceManager(RM)和applicationManager(AM).yarn中的任 ...
- Hadoop YARN 调度器(scheduler) —— 资源调度策略
本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/hadoop_yarn_resource_scheduler 搜了 ...
- Yarn Node Labels
Yarn Node Labels + Capacity-Scheduler 在yarn-site.xml中开启capacity-schedule yarn-site.xml <property& ...
- 关于YARN Node Labels的一点理解
最近在做实验,实验需要进行分区域计算,网上查了资料后发现Yarn Node Labels + Capacity-Scheduler可以实现我的需求 但是当任务提交到capacity-scheduler ...
随机推荐
- sass mixin 持续更新
控制多行显示省略号... //文字溢出省略号@mixin coveText($num:1){ @if $num == 1{ white-space: normal; overflow: hidden; ...
- HDU 1054树形DP入门
Strategic Game Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu 1465 不容易系列之一(错排模板)
不容易系列之一 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- [ CodeVS冲杯之路 ] P3115
不充钱,你怎么AC? 题目:http://codevs.cn/problem/3115/ 基础的高精度减法,先判断一下被减数是否小于减数,若是则交换位置,打上 “-” 负号 当然也可以用压位做 #in ...
- openGL深度缓冲区问题
http://zhidao.baidu.com/question/368299839.html&__bd_tkn__=6aa9196c746cd3357f1eec74aeb127b395029 ...
- zlib、libzip、 libzippp 库编译(windows + cmake + vs2013)
"libzipp" 这库是基于 "libzip" 之上封装的,而 "libzip" 又是基于 "zlib"库封装的,所以 ...
- Android 利用Sharp样式设置文本框EditText圆角形状
1.首先新建样式文件editsharp.xml: <?xml version="1.0" encoding="utf-8"?> <shape ...
- 微信小程序实现豆瓣读书
个人练习项目,使用了scss+webstorm watcher来处理样式.整体上没有什么难点. github:https://github.com/axel10/wx-douban-read
- Educational Codeforces Round 33 (Rated for Div. 2) C. Rumor【并查集+贪心/维护集合最小值】
C. Rumor time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...
- HDU-6315 Naive Operations//2018 Multi-University Training Contest 2___1007 (线段树,区间除法)
原题地址 Naive Operations Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 502768/502768 K (Java/ ...