干货|Mesos分布式集群管理最佳实践

Mesos最开始由加州大学伯克利分校开发,推广于美国版的微博Twitter
  
  是Apache下的开源分布式资源管理框架,
  
  它被称为分布式系统的内核,相当于人的大脑。
  
  Mesos-Master是整个系统的“大脑”,负责管理接入Mesos的各个framework(由frameworks_manager管理)和slave(由slaves_manager管理),并将slave上的资源按照某种策略分配给framework(由独立插拔模块Allocator管理)。
干货|Mesos分布式集群管理最佳实践
  
  示意图
  
  Mesos-Slave负责接受并执行来自“大脑”的命令。Mesos-Slave将自己的资源量发送给“大脑”,由大脑来分配给Framework。
  
  Framework是指外部的计算框架。需要通过调度器,以注册的方式接入Mesos,获得资源。再把获得的资源,由自己的调度器分配给框架中的任务。
干货|Mesos分布式集群管理最佳实践
  
  示意图
  
  当前Mesos支持三中语言编写的调度器,分别是C++、Java、Python。为了统一,Mesos用C++组成了的一个调度驱动drive。Framework(外部的计算框架)可以通过这个接口来注册,获得资源。
  
  Executor主要用于启动框架内部的task。由于不同的框架,启动task的接口或者方式不同,当一个新的框架要接入mesos时,需要编写一个Executor,告诉Mesos如何启动该框架中的task
干货|Mesos分布式集群管理最佳实践
  
  展示了Mesos的重要组成部分,Mesos由一个master进程管理运行着每个客户端节点的slave进程和跑任务的Mesos计算框架。
  
  Mesos进程通过Framework(计算框架)可以很细致的管理cpu和内存等,从而提供资源。master通过插件机制新增额一个allocation模块使之分配资源更简单方便。

  干货|Mesos分布式集群管理最佳实践
  图1.2
  
  流程步骤
  
  1、slave1报告给master他拥有4核cpu和4G剩余内存,Marathon调用allocation政策模块,告诉slave1计算框架1应该被提供可用的资源。
  
  2、master给计算框架1发送一个在slave上可用的资源描述。
  
  3、计算框架的调度器回复给master运行在slave上两个任务相关信息,任务1需要使用2个CPU,内存1G,任务2需使用1个CPU,2G内存。
  
  4、最后,master发送任务给slave,分配适当的给计算框架执行器,继续发起两个任务(图1.1-2虚线处),因为任有1个CPU和1G内存未分配,allocation模块现在或许提供剩下的资源给计算框架2。
  
  除此之外,当任务完成,新的资源成为空闲时,这个资源提供程序将会重复。
  
  这些非常有用的资料,是由金信润天的王牌讲师“标杆徐”老师进行整理,欢迎大家可以学好架构,找到一份满意的高薪工作。

猜你喜欢

转载自blog.51cto.com/13946595/2170122