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的更多相关文章

  1. yarn调度器 FairScheduler 与 CapacityScheduler

    yarn FairScheduler 与 CapacityScheduler CapacityScheduler(根据计算能力调度) CapacityScheduler 允许多个组织共享整个集群, 每 ...

  2. YARN学习总结

    YARN学习总结 前言 YARN(Yet Another Resource Manage,另一种资源协调者)是hadoop-0.23版本引入的的一个新的特性,可以说它是对原有Hadoop Mapred ...

  3. YARN中FIFO、Capacity以及Fari调度器的详细介绍

    (1)FIFO Scheduler 将所有的Applications放到队列中,先按照作业的优先级高低.再按照到达时间的先后,为每个app分配资源.如果第一个app需要的资源被满足了,如果还剩下了资源 ...

  4. Hadoop YARN架构设计要点

    YARN是开源项目Hadoop的一个资源管理系统,最初设计是为了解决Hadoop中MapReduce计算框架中的资源管理问题,但是现在它已经是一个更加通用的资源管理系统,可以把MapReduce计算框 ...

  5. Apache Hadoop下一代MapReduce框架(YARN)简介 (Apache Hadoop NextGen MapReduce (YARN))

    英文看着头大,先试着翻译一下. E文原文:http://archive.cloudera.com/cdh5/cdh/5/hadoop/hadoop-yarn/hadoop-yarn-site/YARN ...

  6. 一:yarn 介绍

        yarn的了出现主要是为了拆分jobtracker的两个核心功能:资源管理和任务监控,分别对应resouceManager(RM)和applicationManager(AM).yarn中的任 ...

  7. Hadoop YARN 调度器(scheduler) —— 资源调度策略

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/hadoop_yarn_resource_scheduler 搜了 ...

  8. Yarn Node Labels

    Yarn Node Labels + Capacity-Scheduler 在yarn-site.xml中开启capacity-schedule yarn-site.xml <property& ...

  9. 关于YARN Node Labels的一点理解

    最近在做实验,实验需要进行分区域计算,网上查了资料后发现Yarn Node Labels + Capacity-Scheduler可以实现我的需求 但是当任务提交到capacity-scheduler ...

随机推荐

  1. BZOJ 4326 NOIP2015 运输计划(树上差分+LCA+二分答案)

    4326: NOIP2015 运输计划 Time Limit: 30 Sec  Memory Limit: 128 MB Submit: 1388  Solved: 860 [Submit][Stat ...

  2. P2659 美丽的序列 (单调栈)

    题目链接 Solution 直接考虑单调栈处理出每一个点作为最小值的区间长度. 然后 \(O(n)\) 找一遍最大值即可. 记得开 long long,以及要注意 \(0\) 的问题. Code #i ...

  3. Codeforces Round #504:D. Array Restoration

    D. Array Restoration 题目链接:https://codeforces.com/contest/1023/problem/D 题意: 给出一个序列,现在要求对一个全为0的序列执行q次 ...

  4. (翻译)FakeKaKao木马分析

    这是暑假时看到的一篇病毒分析文章,觉得里面有很多东西值得学习,刚好这几天有空就将它翻译了出来.有不对的地方请大家指正! FakeKaKao木马分析 Virus Bulletin是一个关于流氓软件与垃圾 ...

  5. Lesson10 Fianl and fellings

    1)Revision History Date Issue Description Author 8/May/2015 1.0 Finish the WPF of our small game,sol ...

  6. div盒子模型(一图胜千言)

    offsetLeft 获取的是相对于父对象的左边距 left 获取或设置相对于 具有定位属性(position定义为relative)的父对象 的左边距 如果父div的position定义为relat ...

  7. Mysql大数据备份及恢复

    <p>[引自攀岩人生的博客]MySQL备份一般采取全库备份.日志备份;MySQL出现故障后可以使用全备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置或时间;mysql的二进制日 ...

  8. 【转】beyond compare 启动提示“应用程序发生错误”

    [转]beyond compare 启动提示“应用程序发生错误”   今天到公司BCompare不能打开,重新安装也不能打开.最后处理下,就解决了.方法是把C:\Documents and Setti ...

  9. C++中的 Round(),floor(),ceil()

     2.1             2.6               -2.1               -2.6floor : 不大于自变量的最大整数             2          ...

  10. 【IDEA】IDEA创建Maven的Web项目并运行以及打包

     0.IDEA集成Maven并设置Maven的配置 idea15之后的版本,都自带了maven插件,idea14貌似需要自己安装,方法也很简单:File->Settings->Plugin ...