Mesos分布式系统中资源调度算法研究(3)
时间:2022-05-04 14:55 来源:毕业论文 作者:毕业论文 点击:次
(2)对Mesos默认调度器(HierarchicalDRFAllocator)的详细分析。 (3)对先进先出(FIFO)、轮询(POLL)、大作业优先(BJP)调度器的具体设计与实现的分析。 (4) 对运行自定义调度器的相关配置的分析以及三种调度器的实验对比。 本文组织结构如图1。1所示。本文组织结构图 2 Mesos相关概念与运行机制 2。1 Mesos总体架构介绍 Apache Mesos由三个组件组成,分别是Mesos-Master,Mesos-Slave,Framework。 2。1。1 Mesos-Master介绍 Master是整个系统的核心,负责管理接入Mesos的各个Framework(由Frameworks_manager管理)和Slave(由Slaves_manager管理),将集群中所有Slave节点的资源通过Allocator模块计算出分配结果,并根据该结果以资源offer的形式将资源分配给各个框架。根据各个框架接受offer的反馈信息在Slave节点上启动相应的任务,其本身并不执行任务。它同时也负责任务和框架之间的所有通信。根据以上介绍可知,Master存在单点故障问题,因此,Mesos通过采用zookeeper,备份多个Master节点,当正在运行的Master节点发生故障时,通过选举策略选择一个新的Master节点继续运行以解决该问题。文献综述 2。1。2 Mesos-Slave介绍 Slave是Mesos集群里真正工作的节点。负责执行Master下达的命令,包括执行、管理任务,并为任务分配资源等。Mesos-Slave将自己的资源量发送给Mesos-Master,由Mesos-Master中的Allocator模块决定将资源分配给哪个Framework,主要的资源有CPU、内存、磁盘、端口号等,即Slave会将CPU个数、内存量、磁盘容量、以及可用端口等信息发送给Master,当框架接收到资源offer后,执行任务时需为每个任务指定各种资源的资源量。当Slave执行该任务时将其指定的资源分配到单独的linux container中,从而达到资源隔离的效果。 2。1。3 Framework介绍 Framework(框架)是运行在Mesos上解决特定问题的应用程序。每一种框架都包括调度器和执行器。调度器负责在收到Master的资源offer后,根据策略,如何使用该offer的资源。执行器运行在集群Slave节点上负责执行任务。 当一个框架要接入到Mesos中时,需要修改其调度器以满足Mesos提供的接口,通过这些接口可实现Master与框架间资源、任务描述的通信。当框架获取到Master分配的资源后,再根据自己的调度器将资源分配给框架中的任务。即整个Mesos系统是一个双层调度框架。第一层是Master将资源分配给框架的粗粒度调度;第二层是框架为其内部任务分配资源的细粒度资源调度。当前Mesos支持三种语言编写的调度器,分别是C++,java和python,为了向各种调度器提供统一的接入方式,Mesos内部采用C++实现了一个MesosSchedulerDriver(调度器驱动器),Framework的调度器可调用该driver中的接口与Mesos-Master交互,完成一系列功能(如注册,资源分配等)。来:自[优.尔]论,文-网www.youerw.com +QQ752018766- 2。2 Mesos组件间的联系与通信 Mesos中包含四类主要的服务,它们分别是Mesos Master,Mesos Slave,SchedulerProcess和ExecutorProcess,这些服务通过Protocal Buffer消息进行通信,每种服务内部有多种Protocal Buffer消息处理器,一旦收到某种消息,就会调用相应的消息处理器进行处理。除了以上四种服务之外,Mesos还对外提供了三种可编程组件,分别是Alloctor、Framework Scheduler和Framework Executor,编写这三个组件则需按照要求实现各个组件定义的相关接口,这些接口分别与其相邻的服务通信,并被调用 (责任编辑:qin) |