ApacheMesos调度机制是什么

本篇内容介绍了“Apache Mesos调度机制是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联公司是一家专业提供卡若企业网站建设,专注与网站制作、成都网站建设H5开发、小程序制作等业务。10年已为卡若众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

1. 前言

调度器是Mesos的核心部件,主要负责将各个slave上资源分配给各个framework,常见的调度机制有FIFO,Fair  Scheduler,Capacity  Scheduler,Quincy,Condor等。Mesos为了支持多framework接入,采用了双层调度机制,首先,由mesos中的 allocator将资源分配给framework,然后又由framework自己的调度器将资源分配给任务。

2. Mesos调度机制

Mesos中的调度机制被称为“Resource  Offer”,采用了基于资源量的调度机制,这不同于Hadoop中的基于slot的机制。在mesos中,slave直接将资源量(CPU和内存)汇报 给master,由master将资源量按照某种机制分配给framework,其中,“某种机制”是“Dominant Resource  Fairness(DRF)”

对于类似mesos采用双层调度框架的系统,在设计时,需要解决以下问题:“Mesos在不知道各个framework资源需求的情况下,如何满足 其需求?”,更具体一些,“Mesos在不知道framework中哪些数据存放在哪些节点情况下,如何做到数据locality?”为了解决该问 题,mesos提供了“reject offer”机制,允许framework暂时拒绝不满足其资源需求的slave,在此,mesos采用了类似于Hadoop中的“delay scheduling“调度机制。

在mesos中,作业调度是一个分布式的过程,当出现失败情况时,需要表现出一定的高效性和鲁棒性。为此,mesos提供了以下机制:

(1)filters机制。  每次调度过程,mesos-master需要与framework-scheduler进行通信,如果有些framework总是拒绝slave,那么由 于额外的通信开销会使得调度性能低效。为此避免不必要的通信,mesos提供了filters机制,允许framework只接收“剩余资源量大于L的 slave”或者“只接收node列表中的slave”。

(2)rescinds机制。如果某个framework在一定的时间内没有为分配的资源返回对应的任务,则mesos会回收其资源量,并将这些资源分配给其他framework。

3. Dominant Resource Fairness(DRF)

DRF是一种支持多资源的max-min fair  资源分配机制,其中max表示max{CPU,mem},而min表示min{user1,user2,…}=min{max{CPU1,mem1},  max{CPU2,mem2}, …},其中user代表mesos中的framework,算法伪代码如下图所示:

Apache Mesos调度机制是什么

举例说明,假设系统中共有9 CPUs 和18 GB  RAM,有两个user(framework)分别运行了两种任务,分别需要的资源量为<1 CPU, 4 GB> 和 <3  CPUs, 1  GB>。对于用户A,每个task要消耗总CPU的1/9和总内存的2/9,因而A的支配性资源为内存;对于用户B,每个task要消耗总CPU的 1/3和总内存的1/18,因而B的支配性资源为CPU。DRF将均衡所有用户的支配性资源,即:A获取的资源量为:<3 CPUs,12  GB>,可运行3个task;而B获取的资源量为<6 CPUs,  2GB>,可运行2个task,这样分配,每个用户获取了相同比例的支配性资源,即:A获取了2/3的RAMs,B获取了2/3的CPUs。

DRF算法的一个可能的调度序列如下图所示:

Apache Mesos调度机制是什么

DRF的好处是可满足四个特性,即:Sharing incentive,Strategy-proofness,Envy-freeness和Pareto efficiency

4. Mesos调度问题

Mesos中的DRF调度算法过分的追求公平,没有考虑到实际的应用需求。在实际生产线上,往往需要类似于Hadoop中Capacity  Scheduler的调度机制,将所有资源分成若干个queue,每个queue分配一定量的资源,每个user有一定的资源使用上限;更使用的调度策略 是应该支持每个queue可单独定制自己的调度器策略,如:FIFO,Priority等。

由于Mesos采用了双层调度机制,在实际调度时,将面临设计决策问题:***层和第二层调度器分别实现哪几个调度机制,即:将大部分调度机制放到***层调度器,还是***层调度器仅支持简单的资源分配(分配比例由管理员指定)?

Mesos采用了Resource Offer机制(不同于Hadoop中的基于slot的调度机制),这种调度机制面临着资源碎片问题,即:每个节点上的资源不可能全部被分配完,剩下的一点可能不足以让任何任务运行,这样,便产生了类似于操作系统中的内存碎片问题。

“Apache Mesos调度机制是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文名称:ApacheMesos调度机制是什么
文章网址:http://scjbc.cn/article/jojois.html

其他资讯