Apache Mesos的任务分配过程分析,见下图:

步骤1 当出现以下几种事件中的一种时,会触发资源分配行为:新框架注册、框架注销、增加节点、出现空闲资源等;

步骤2 Mesos Master中的Allocator模块为某个框架分配资源,并将资源封装到ResourceOffersMessage(Protocal Buffer Message)中,通过网络传输给SchedulerProcess;

步骤3 SchedulerProcess调用用户编写的Scheduler中的resourceOffers函数(不能版本可能有变动),告之有新资源可用;

步骤4 用户的Scheduler调用MesosSchedulerDriver中的launchTasks()函数,告之将要启动的任务;

步骤5 SchedulerProcess将待启动的任务封装到LaunchTasksMessage(Protocal Buffer Message)中,通过网络传输给Mesos Master;

步骤6 Mesos Master将待启动的任务封装成RunTaskMessage发送给各个Mesos Slave;

步骤7 Mesos Slave收到RunTaskMessage消息后,将之进一步发送给对应的ExecutorProcess;

步骤8 ExecutorProcess收到消息后,进行资源本地化,并准备任务运行环境,最终调用用户编写的Executor中的launchTask启动任务(如果Executor尚未启动,则先要启动Executor)。

在一个Mesos Slave上,一个任务启动过程如下图所示:

原创文章,转载请注明: 转载自董的博客

本文链接地址: Apache Mesos的任务分配过程分析

微信公众号:hadoop-123,专注于大数据技术分享,欢迎加入!

说点什么

avatar
  Subscribe  
提醒