你好,游客 登录 注册 发布搜索
背景:
阅读新闻

揭秘你不知道的分布式云计算框架Mesos

[日期:2014-04-10] 来源:51CTO  作者: [字体: ]

Mesos计算框架一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行Hadoop、MPI、Hypertable、Spark。使用ZooKeeper实现容错复制,使用Linux Containers来隔离任务,支持多种资源计划分配。

Mesos中包含四类主要的服务(实际上是一个socket server),它们分别是Mesos Master,Mesos Slave,SchedulerProcess和ExecutorProcess,它们之间通过Protocal Buffer消息进行通信,每种服务内部注册了若干种Protocal Buffer消息处理器,一旦收到某种消息,则会调用相应的消息处理器进行处理。除了以上四种服务之外,Mesos还对外提供了三种可编程组件,分别是 Alloctor、Framework Scheduler和Framework Executor,编写这几个组件必须按照要求实现了几个接口,而这些接口将分别被下图中相邻的服务调用。

云,云计算

大部分人看到以上Mesos架构后,均会认为Framework必须是一个通用的框架,比如MapReduce、Storm、Spark等,而 Mesos Master负责将资源分配给各个框架,而各个框架的Scheduler进一步将资源分配给其内部的各个应用程序。这种观念是错误的,是对Mesos架构 的一种错误解读。

事实上,Framework不仅可以是通用的框架,也可以是像Hadoop的Job或者YARN的Application那样的简单计算任务,也就 是说,Framework并需要一定是一个“Framework”,或者一个长时间运行的服务(比如JobTracker等),也可以是一个短生命周期的 Job或者Application。如果让Framework对应一个Hadoop Job,则可以这样设计Framework Scheduler和Framework Executor:

(1)Framework Scheduler功能

Framework Scheduler负责按照作业的输入数据量,将之分解成若干任务,并为这些任务申请资源、监控这些任务的运行状态,一旦发现某个任务运行失败则重新为之申请资源。

(2)Framework Executor功能

为一个节点上的Map Task或者Reduce Task准备运行环境,包括准备各种jar包、二进制文件,设置必要的环境变量,进行必要的资源隔离,启动Jetty Shuffle以为Reduce Task提供远程数据拷贝服务等,接收来自Framework Scheduler的命令(启动任务、杀死任务等),并执行。

通过上面的介绍可以知道,Framework Scheduler只负责运行一个Hadoop Job,而如果你对YARN比较熟悉,便会发现者正是YARN中的MapReduce ApplicationMaster做的事情,没错,Mesos与YARN的设计架构如此的相近,以至于我们很容易通过修改YARN 的任何一个ApplicationMaster,让它作为一个Framework Scheduler运行在Mesos中。

最近Mesos提供了一个mesos-submit工具(注意,该工具尚不完善),该工具可以让用户的Framework Scheduler运行在任何一个Mesos Slave上,以防止客户端运行过多的Framework Scheduler,这样,Mesos的整个架构和工作流程已经变得与YARN相差无几了。

为了让大家更容易理解Mesos和YARN在架构上的相似性,下面给出了Mesos和YARN的组件对应表:

 

Mesos中的组件 YARN中的组件 功能
Mesos Master Resource Manager 整个集群的资源管理和调度
Mesos Slave Node Manager 单个节点的资源管理(资源隔离、汇报等)、任务启动等
Framework Executor
Framework Scheduler ApplicationMaster 单个应用程序的管理和资源二次调度,基本操作均包括注册、资源申请/获取、资源分配(给内部的任务)等。

既然Mesos和YARN如此的相近,那么我们到底应该使用哪一个呢?或者说,哪一个系统更有前景?

就目前看来,YARN在以下几个方面存在明显优势:(1)人力投入大。目前YARN有专门的公司(hortonwork)维护和开发 (2)知名度高。YARN之前从Hadoop 1.0中演化而来,继承了Hadoop的知名度,且有大量公司和开发人员共享patch。然而,Mesos最大优点的设计简单、容易上手使用,它不像 YARN那样,一个资源的分配过程要涉及到若干个状态机,且每种状态机十几种状态,十几种事件。但稳定性看,两个系统都处于研发和测试阶段,离稳定可用还 有一段距离。

 

您可能还喜欢:1 Apache Mesos总体架构

2 Apache Mesos底层基础库

3 Apache Mesos模块间通信架构

4 Apache Mesos调度机制

5 Apache Mesos的任务状态更新过程分析

6 Apache Mesos的任务分配过程分析

7 Mesos的Framework与Executor注册过程

收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款