没有人比我更懂集群调度器---之流行集群调度器综述
集群调度器的演进Firmament.io这片paper详细总结了目前调度的几大分类:a. 集中式调度器:代表k8s、Hadoop 、HPC 调度器。优势:调度器可以感知全局信息,因此可以基于此开发不同的调度算法来避免因为作业竞争而产生作业干扰。因为可以获取集群全局信息因此可以设计优先级抢占算法。劣势:1.针对不同类型的作业都采用了同一种调度算法; 2.调度器对作业处理的顺序是一个问题,需要一个良好
·
集群调度器的演进
Firmament.io这片paper详细总结了目前调度的几大分类:
- a. 集中式调度器:代表k8s、Hadoop 、HPC 调度器。
优势:调度器可以感知全局信息,因此可以基于此开发不同的调度算法来避免因为作业竞争而产生作业干扰。因为可以获取集群全局信息因此可以设计优先级抢占算法。
劣势:1. 针对不同类型的作业都采用了同一种调度算法; 2.调度器对作业处理的顺序是一个问题,需要一个良好的作业优先级定义,否则可能产生队头阻塞与作业挤压的问题。 - b. 两级调度器:代表mesos。
优势:可以针对不同的作业设计不同的调度算法。
劣势:Mesos的scheduler的资源是resource manager主动offer的,所以不同类型的scheduler只具有局部的资源利用信息,因此全局设计优先级抢占就比较难实现;同样因为无法得到全局资源信息,因此不能设计调度算法避免作业干扰。 - c. 共享状态调度器:代表google Omaga、Microsoft Apollo。
优势:共享状态调度器去掉了二级调度当中的ResourceManager,所有的scheduler都有一份集群状态的副本,通过事务提交的方式更新集群的状态。
劣势:在资源竞争强烈的情况下,由于通过事务的方式维护集群的状态,因此更在这种情形下开销更大。 - d. 全分布式调度器:
与共享状态调度器不同,全分布式调度器中每个类型的作业不是固定发送给某种调度器,而是可以发送给任意一个调度器
,因此更加的去中心化。设计的目标是利用最少的信息做出快速的决策,从而可以大幅度提高调度器的吞吐量。 (是如何做到这一点的?)
劣势:由于去中心化,因此很难进行严格意义上的优先级调度。 - e. 混合式调度架构:
结合中心化调度器与分布式调度器,因此兼具了二者的优点。大幅提高吞吐的同时,可以获取全局信息进行优先级与避免作业干扰调度。单目前还没有实际的应用。
当前主流调度框架的特性
参考
- Apollo: Scalable and Coordinated Scheduling for Cloud-Scale Computing
- Firmament: Fast, Centralized Cluster Scheduling at Scale
- Omega: flexible, scalable schedulers for large compute clusters
- http://www.firmament.io/blog/scheduler-architectures.html
更多推荐
已为社区贡献2条内容
所有评论(0)