Mesos是虚拟化的一个非常典型的应用。
Mesos是UC Berkeley的杰作,Mesos的论文在此,Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center
Berkeley和Apache形成了非常经典的模式是:UC Berkeley 在github上开源,Apache负责孵化成开源项目,非常赞啊。
与YARN类似,Mesos是一个资源调度系统,可以看到下图是Mesos的结构。LXC可以管理本地的物理资源,包括CPU,内存等等。
Framework1中包括了两个计算任务。
(1)slave 1告诉master它有4cpu, 4gb内存。(2)master的分配器决定将资源分配给framework 1, 因此生成resource offer传给framework1的scheduler。(3) framework1回复master,要运行两个framework task, 第一个用2cpu, 1gb内存, 第二个用1cpu,2gb内存。 (4) master把两个task信息传送到slave1, slave1通过lxc分配资源启动2个executor, 每个excutor加载并运行一个task。 剩下的1cpu和1gb内存,默认是被framework1拒绝, 因此分配给framework2。
利用mesos,这样避免了单一机器系统资源的浪费。比如单台机器有32个CPU,但是某个tasktracker只用了1个CPU,那么就会造成资源的浪费。但是使用了mesos,mesos结合了LXC,可以将CPU和memory的资源虚拟化,实现多个计算框架的并行化。使得多种计算框架运行在同一台机器上。
这样可以使用更少的机器,提供更加经济的服务,虚拟化可以更好的利用机器的计算资源和存储资源。可以看到mesos上运行hadoop的话,由于要和mesos的master做通信,因此,必须要修改hadoop,mesos也并非支持所有的计算框架。
这里的executor就是tasktracker,而Hadoop scheduler是对应的jobtracker。可以看到在Mesos slave上,既可以运行MPI,同时也可以运行Hadoop的executor。Mesos是面向整个数据中心的。
阅读(2699) | 评论(0) | 转发(0) |