ApacheMesos的任务分配过程分析,见下图:Step1当发生以下事件之一时,将触发资源分配行为:新框架注册,框架注销、添加节点、闲置资源等;step2.MesosMaster中的Allocator模块为一个framework分配资源,并将资源封装成ResourceOffersMessage(ProtocalBufferMessage),通过网络传递给SchedulerProcess;step3.SchedulerProcess调用用户编写的SchedulerresourceOffers函数(版本不可更改)通知有新资源可用;Step4用户的Scheduler调用MesosSchedulerDriver中的launchTasks()函数通知要启动的任务;Step5SchedulerProcess将要启动的任务封装成LaunchTasksMessage(ProtocalBufferMessage),通过网络传输给MesosMaster;Step6.MesosMaster将要启动的任务封装成一个RunTaskMessage发送给各个MesosSlave;Step7.MesosSlave收到RunTaskMessage消息后,进一步发送给对??应的ExecutorProcess;Step8ExecutorProcess收到消息后,进行资源本地化,准备任务运行环境,最后调用写好的Executor中的launchTask由用户启动任务(如果还没有启动Executor,必须先启动Executor)。在MesosSlave上,一个task的启动流程如下图所示:原文链接:http://dongxicheng.org/apache-mesos/apache-mesos-task-assignment/
