Apache Mesos调度机制是什么

发布时间:2021-11-17 16:11:35 作者:iii
来源:亿速云 阅读:205

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

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调度机制是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. 1.2 Introduction to Apache Flink(Flink介绍)
  2. Deploy Apache Flink Natively on YARN/Kubernetes

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

apache mesos

上一篇:Apache Mesos总体架构分析

下一篇:jquery如何获取tr里面有几个td

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》