Mesos的Framework与Executor注册过程

开发 前端
本文以Hadoop框架为例,介绍了framework与executor向mesos注册过程。

本文以Hadoop框架为例,介绍了framework与executor向mesos注册过程。

1. Framework注册过程

(1) JobTracker启动时,会调用MesosScheduler的start()方法

(2) MesosScheduler的start()方法创建一个MesosSchedulerDriver对象,并将自己作为参数传入该对象。

(3) MesosSchedulerDriver初始化,创建一个SchedulerProcess对象

(4) MesosSchedulerDriver初始化,调用MasterDetector::create(),它将向SchedulerProcess对象发送一个NewMasterDetectedMessage消息

(5) SchedulerProcess对象收到NewMasterDetectedMessage消息后,向Master发送一个RegisterFrameworkMessage消息

(6) Master收到该消息后,保存相关信息,并返回FrameworkRegistedMessage消息,确认framework注册成功

2.     Executor注册过程

本节描述框架frameworkX在某个slaveX上注册executor executorX的过程:

(1)Master***次向slaveX发送执行frameworkX中task的消息 RunTaskMessage

(2)slave收到该消息后,运行相应的消息处理函数runTask()

(3)该函数发现该slave上未启动frameworkX对应的executorX,则调用IsolationModule的lauchExecutor()函数

(4)该函数创建一个FrameworkExecutor对象,并调用ExecutorProcess的Initialize()函数进行初始化,同时启动TaskTracker

(5)Initialize()函数创建消息RegisterExecutorMessage,并发送给slave

(6)Slave收到该消息后,调用对象的消息处理函数registerExecutor,该函数创建ExecutorRegisteredMessage消息,返回给ExecutorProcess

(7)ExecutorProcess收到该消息后,调用对应的消息处理函数registered(),该函数再进一步调用FrameworkExecutor的registered()函数

接下来,master发送给slave的RunTaskMessage消息依次经过的流程如下图所示。需要注意的是,对于同一个计算框 架,Mesos在一个slave上只会创建一个资源container,所有task全部在这个container里运行,也就是说,mesos无法做到 task级别的隔离,只能做到executor级别的隔离,而对于同一个框架,同一个slave上所有task全部在一个executor中运行。

对于Hadoop而言,每个mesos-slave上只会创建一个TaskTracker,且该TaskTracker会被放置到一个 executor(对应一个linux container)中运行,而同一个TaskTracker上所有task均在该TaskTracker所在进程树中,因而共享该executor对应 的资源。当TaskTracker接收到新的task时,会增加该executor可以使用的资源量(使用“lxc-cgroup –n %s %s %lld”),而当有task运行完成时,则减少该executor可使用的资源量(使用“lxc-cgroup –n %s %s %lld”)。

原文链接:http://dongxicheng.org/apache-mesos/apache-mesos-framework-executor-registering/

责任编辑:陈四芳 来源: dongxicheng.org
相关推荐

2014-01-06 16:38:29

MesosApache

2014-01-06 11:26:38

ApacheMesos

2014-01-06 17:41:44

ApacheMesos

2009-07-07 12:09:04

注册表开发.NET Compac

2016-01-07 10:29:36

MesosDocker持续交付

2014-02-14 15:12:41

ApacheMesos架构

2009-08-18 11:08:24

.Net Framew

2010-01-06 16:25:58

.Net Framew

2014-01-06 17:30:50

ApacheMesos架构

2009-07-10 11:28:39

2010-01-06 11:30:22

.NET Framew

2022-08-15 11:28:22

handler注册过程APiServer

2015-03-10 09:24:48

DockerDocker SwarDocker编排

2014-01-06 11:23:54

Mesos设计架构

2021-03-23 08:40:47

集群管理系统

2012-08-20 10:40:01

IBMdW

2015-12-25 11:00:52

Zookeeper的Python

2021-04-20 17:20:59

SpringColud EurekaNetflix开发

2021-04-19 08:17:42

MesosKubernetesLinux

2014-01-06 17:24:44

ApacheMesos
点赞
收藏

51CTO技术栈公众号