当前位置: 首页 > 科技观察

ApacheMesos模块间通信架构

时间:2023-03-13 02:31:08 科技观察

1.介绍Mesos主要由四个组件组成,分别是mesos-master、mesos-save、scheduler和Executor。基于protocolbuffer的actor模型用于各个组件之间的通信(使用开源库libprocess)。也就是说,每个模块都是一个server(实际上是一个socketserver),监听来自其他模块的消息,一旦接收到消息,就会调用相应的消息处理函数进行处理。(什么是apachemesos?参考:《统一资源管理与调度平台(系统)介绍》,本文分析基于MesosSVNRevision1327410)。2.通信框架概述对于一个计算框架(如Hadoop、Spark等),如果要接入Mesos,需要编写两个组件,分别是FrameworkSchduler和FrameworkExecutor。这两个组件分别实现了Scheduler和Executor接口,分别通过SchedulerDriver和ExecutorDriver连接到Mesos。图中黑色虚线表示这些组件之间的关系是通过函数调用产生的。其他组件,即mesos-master、mesos-save、SchedulerProcess和ExecutorProcess通过消息机制进行通信(使用libprocess开源库)。(1)【SchedulerProcess和mesos-master】:mesos-master为各个framework分配资源,这些资源直接传递给SchedulerProcess,然后SchedulerProcess调用FrameworkScheduler相关函数,FrameworkScheduler将这些资源分配给framework中的task,返回给mesos-master,由mesos-master转发给对应的mesos-slave。(2)【SchedulerProcessandMesos-slave】:如果SchedulerProcess中保存了Mesos-slave的地址,则相关消息会直接发送给Mesos-slave,不需要经过mesos-master转发。(3)[Mesos-masterandMesos-slave]:Mesos-master管理mesos-slave,比如监控slave的健康状态等(4)[Mesos-slaveandExecutorProcess]:Mesos-slave负责管理各个框架的executor,为executor分配资源等。详情如下图所示。3.消息类型及处理函数3.1Mesos-Slave消息类型及处理函数3.2Mesos-master消息类型及处理函数3.3Scheduler消息类型及处理函数位于sched/sched.cpp,由SchedulerProcess/MesosSchedulerDriver实现3.4消息类型Executor和处理函数位于exec/exec.cpp文件中,由ExectorProcess实现原文链接:http://dongxicheng.org/apache-mesos/apache-mesos-communications/

最新推荐
猜你喜欢