mesos开发指南 mesos framework_服务器


Mesos实现了两级调度架构,它可以管理多种类型的应用程序。第一级调度是Master的守护进程,管理Mesos集群中所有节点上运行的Slave守护进程。集群由物理服务器或虚拟服务器组成,用于运行应用程序的任务,比如Hadoop和MPI作业。第二级调度由被称作Framework的“组件”组成。Framework包括调度器(Scheduler)和执行器(Executor)进程,其中每个节点上都会运行执行器。Mesos能和不同类型的Framework通信,每种Framework由相应的应用集群管理。上图中只展示了Hadoop和MPI两种类型,其它类型的应用程序也有相应的Framework。


Mesos Master协调全部的Slave,并确定每个节点的可用资源, 聚合计算跨节点的所有可用资源的报告,然后向注册到Master的Framework(作为Master的客户端)发出资源邀约。Framework可以根据应用程序的需求,选择接受或拒绝来自master的资源邀约。一旦接受邀约,Master即协调Framework和Slave,调度参与节点上任务,并在容器中执行,以使多种类型的任务,比如Hadoop和Cassandra,可以在同一个节点上同时运行.




mesos的体系结构和工作流




Slave是运行在物理或虚拟服务器上的Mesos守护进程,是Mesos集群的一部分。


Framework由调度器(Scheduler)应用程序和任务执行器(Executor)组成,被注册到Mesos以使用Mesos集群中的资源。


  • Slave 1向Master汇报其空闲资源:4个CPU、4GB内存。然后,Master触发分配策略模块,得到的反馈是Framework 1要请求全部可用资源。
  • Master向Framework 1发送资源邀约,描述了Slave 1上的可用资源。
  • Framework的调度器(Scheduler)响应Master,需要在Slave上运行两个任务,第一个任务分配<2 CPUs, 1 GB RAM>资源,第二个任务分配<1 CPUs, 2 GB RAM>资源。
  • 最后,Master向Slave下发任务,分配适当的资源给Framework的任务执行器(Executor),接下来由执行器启动这两个任 务(如图中虚线框所示)。 此时,还有1个CPU和1GB的RAM尚未分配,因此分配模块可以将这些资源供给Framework 2。


mesos工作流程


1.集群中的所有slave节点会和master定期进行通信,将自己的资源信息同步到master,master由此获知到整个集群的资源状况


2.mater会和已注册、受信任的Framework进行交互,定期将最新的资源情况发送给Framework,当Framework前端有工作需求时,将选择接收资源,否则拒绝


3.前端用户提交了一个工作需求给Framework


4.Framework接收slave master发过来的资源信息


5.Framework依据资源信息向slave发起任务启动命令,开始调度工作


        Mesos是经典的二层架构,Master只负责管理资源,Framework负责任务调度,它们两者都可以直接给slave通信;Master保持着通用性,轻量性,它和Framework、Slave之间的的交互更多的是状态信息同步;在Slave上有两类进程:一类为Manager,用来与Master通信,交互状态信息,另一类则是由Framework实现的具体Executor,它负责任务的运行,对于Manager而言,他看到的所有Executor、Task都是一致的容器,而不管这些任务具体执行什么样的业务逻辑;