Chinaunix首页 | 论坛 | 博客
  • 博客访问: 613560
  • 博文数量: 79
  • 博客积分: 848
  • 博客等级: 军士长
  • 技术积分: 1800
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-26 19:30
文章分类

全部博文(79)

文章存档

2015年(4)

2013年(39)

2012年(36)

分类: 架构设计与优化

2013-10-03 16:54:59

之前几个月将Mesos的源代码大致上读了一遍感觉收获还是挺多,但是偷懒了一直没有总结,最近有人问起的时候,发现自己已经忘的差不多了,决定还是从头到尾仔仔细细的总结一下,也是对于之前工作的一个交代。

1、什么是Mesos?
社区中对其的定义如下:首先它是一个集群管理工具(what),这个工具能做什么呢?它为分布式的应用或者计算框架提供资源的隔离和共享,简单点说:它可以让Hadoop、MPI、Spark等多种分布式的计算框架运行在同一个动态、可扩展的集群之上。

2、如何实现这些功能?

结构和功能是分不开的,我们要知道它如何实现上述定义中的功能,我们就先来看看它的结构:


整个系统被分为了三个部分:
从上到下依次为:计算框架、Mesos Master、Mesos Slave
这三个部分分别是用来干什么的呢?
1、计算框架:
不用多说,就是我们定义中提到的各种分布式的应用,用户通过这些计算框架完成不同的计算任务。
2、Mesos Master
这个就是Mesos的主节点,它用来跟上层的计算框架进行交互以及slave节点的管理,这个我们后续还会详细的说明,这里只是跟大家提一下让大家有个印象。
3、Mesos Slave
这是整个集群中的从属节点,这些节点实际上跟上层的计算框架的从属节点是有重合的,也正是这些从属节点承载了集群中的计算资源,在其之上运行各种各样的计算任务。
整个系统的工作方式:我们以hadoop为例来说明:首先用户通过JobClient向Hadoop提交了作业之后,作业到达了Hadoop的jobTracker,JobTracker通过tackScheduler实例跟Mesos Master建立连接,然后Mesos Master将系统中的资源推送给JobTracker,如果资源满足运算需求,JobTracker跟slave节点上的TaskTracker通过心跳来完成任务分配,对应于系统中不同的计算框架在slave节点上会有不同的执行器(Executor),由它们来完成任务的执行和反馈。

本篇中我们大致上介绍了Mesos系统的运行机制,下面我们就以Mesos-0.10.0跟hadoop0.20.205为例来说明一下,Mesos如何支持Hadoop任务的。

阅读(4996) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~