Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center

Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center

 

为什么需要Mesos?

现在有越来越多的compute framework, 并且每个framework都有自己的适用场景和优缺点. 比如Hadoop, MPI, Pregel, Spark…… 
所以往往需要build不同的framework来满足不同的需要, 问题是如果不同的framework搭建在不同的cluster上, 太不方便了 
首先那么多的cluster, 严重的资源浪费, 并且对于处理对象big data需要在各个cluster之间导来导去, 相当不方便

所以Mesos就提供了这样的一个方案, 可以使不同的framework来共享一个cluster. 

现在已有的集群共享solution,

1. Statically partition the cluster and run one framework per partition, 将集群分成互不打扰的patition  
2. Allocate a set of VMs to each framework, 使用虚拟机技术

Unfortunately, these solutions achieve neither high utilization nor efficient data sharing. 
The main problem is the mismatch between the allocation granularities of these solutions and of existing frameworks. 
这些技术在利用效率和数据共享上都不太好, 原因是他们共享的粒度太粗, 和现有的计算framework不匹配. 
比如对于Hadoop, 对于资源的分配可以细到slot的级别, 一个instance可以包含多个slot.

In this paper, we propose Mesos, a thin resource sharing layer that enables fine-grained sharing across diverse cluster computing frameworks, by giving frameworks a common interface for accessing cluster resources. 
Mesos的特点, 就说可以实现不同计算framework之间的fine-grained的资源共享, 它通过提供一种通用的cluster资源访问接口来实现.

 

Mesos架构设计

Design Philosophy

Because cluster frameworks are both highly diverse and rapidly evolving, 
our overriding design philosophy has been to define a minimal interface that enables efficient resource sharing across frameworks, 
and otherwise push control of task scheduling and execution to the frameworks.

设计哲学, 一句话就是简单至上. 
首先, 为了应对framework之间极大的差异性, Mesos只提高一组最小的简单接口用于共享资源 
接着, 由framework自身负责task的schedule和执行

 

架构Overview

Mesos consists of a master process that manages slave daemons running on each cluster node, and frameworks that run tasks on these slaves.

The master implements fine-grained sharing across frameworks using resource offers
Each resource offer is a list of free resources on multiple slaves.

The master decides how many resources to offer to each framework according to an organizational policy, such as fair sharing or priority.

Each framework running on Mesos consists of two components: 
scheduler that registers with the master to be offered resources 
an executor process that is launched on slave nodes to run the framework’s tasks

首先Mesos基于master, master用于管理slave, 并且在master上可以用户定义各个framework的资源分配策略, 比如fair或者priority 
既然基于master, 就需要考虑单点问题, 这儿使用zookeeper来管理并确保failover

提到'resource offer'的概念, 其实就是可用资源的列表 
Mesos slave会将resource offer发给Mesos master, master通知各个framework scheduler当前resource offer的情况 
Scheduler会根据各自情况, 决定是否在slave上assign task, task的执行由framework executor来完成, 对mesos透明

 

实际的例子, 
1. Slave向master报告resources offer, 4cpu, 4gb ram 
2. master通知注册的schedulers 
3. scheduler判断当前待执行的task列表, 发现task1, 和task2, 可以在s1执行, 发请求告诉master 
4. master通知在s1上的framework1的executor, 执行相应的task

 

Isolation

Mesos provides performance isolation between framework executors running on the same slave by leveraging existing OS isolation mechanisms.

We currently isolate resources using OS container technologies, specifically Linux Containers and Solaris Projects.

These technologies can limit the CPU, memory, network bandwidth, and (in new Linux kernels) I/O usage of a process tree.

本文章摘自博客园,原文发布日期: 2013-03-27 

时间: 2024-09-30 08:23:32

Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center的相关文章

基于Docker搭建多节点Mesos/Marathon

本文讲的是基于Docker搭建多节点Mesos/Marathon[编者的话]在之前的一篇博客中,我介绍了基于Docker搭建单机版Mesos/Marathon,但是仅仅使用了单个节点.而在这篇博客中,我将介绍基于Docker搭建多节点Mesos/Marathon,开发者可以使用3个节点快速地搭建一个真正的分布式容器集群系统.服务发现和负载均衡是容器集群必不可少的功能,我选择了Marathon LB来实现. GitHub地址: kiwenlau/mesos-marathon-platform 一.

巅峰对决之Swarm、Kubernetes、Mesos

本文讲的是巅峰对决之Swarm.Kubernetes.Mesos,[编者的话]这篇文章对比了三大主流调度框架:Swarm.Kubernetes和Mesos.文章不仅从理论上讨论了各个框架的优缺点,还从两个实际的案例出发,分析了每个框架具体使用方法. 这篇文章对比了三大主流调度框架:Docker Swarm.Google Kubernetes和Apache Mesos(基于Marathon框架).在解释了调度和容器的基本概念后,文章探讨了每个框架的特点,并从以下两个用例来对比他们:一个只使用了两个

大数据的那些事儿

资源列表:   关系数据库管理系统(RDBMS)   框架   分布式编程   分布式文件系统   文件数据模型   Key -Map 数据模型   键-值数据模型   图形数据模型   NewSQL数据库   列式数据库   时间序列数据库   类SQL处理   数据摄取   服务编程   调度   机器学习   基准测试   安全性   系统部署   应用程序   搜索引擎与框架   MySQL的分支和演化   PostgreSQL的分支和演化   Memcached的分支和演化   嵌入式

集群调度技术研究综述

1  引言 什么是调度?个人理解最初的调度是和时间有关的.时间作为唯一的不可逆转的资源,一般是划分为多个时间片来使用(如下图所示).就计算机而言,由于CPU的速度快的多,所以就有了针对CPU时间片的调度,让多个任务在同一个CPU上运行起来.这是一个假象,某一时刻CPU还是单任务运行的. 后来为了在同一时间进行更多的任务,需要在同一时间内干多件事情.如果多个人或者多个处理器为了完成一个任务目标一起工作,就需要一个协调者.这就是一个分布式系统,就单个数据中心或者小范围来说,就是集群.如果让一个分布式

史上最全“大数据”学习资源整理

史上最全"大数据"学习资源整理 2016-05-17 Hadoop技术博文 当前,整个互联网正在从IT时代向DT时代演进,大数据技术也正在助力企业和公众敲开DT世界大门.当今"大数据"一词的重点其实已经不仅在于数据规模的定义,它更代表着信息技术发展进入了一个新的时代,代表着爆炸性的数据信息给传统的计算技术和信息技术带来的技术挑战和困难,代表着大数据处理所需的新的技术和方法,也代表着大数据分析和应用所带来的新发明.新服务和新的发展机遇.     资源列表:   关系数

五四青年最热爱:史上最全的“大数据”学习资源(下)

推荐:史上最全的"大数据"学习资源(上) 当前,整个互联网正在从IT时代向DT时代演进,大数据技术也正在助力企业和公众敲开DT世界大门.当今"大数据"一词的重点其实已经不仅在于数据规模的定义,它更代表着信息技术发展进入了一个新的时代,代表着爆炸性的数据信息给传统的计算技术和信息技术带来的技术挑战和困难,代表着大数据处理所需的新的技术和方法,也代表着大数据分析和应用所带来的新发明.新服务和新的发展机遇. 服务编程   Akka Toolkit:JVM中分布性.容错事件

DC/OS关键技术与应用场景

本文讲的是DC/OS关键技术与应用场景[编者的话]文章首先对数据中心操作系统内的主要技术,包括Mesos.Yarn.Kubernetes和容器进行了阐述.根据国内外电信运营商的现状和面临的问题,提出了一种解决方案,并对技术实现及选型建议进行了讨论.最后对电信运营商应用DC/OS关键技术的案例进行了简要介绍. 引言 随着越来越多的平台.架构.系统.组件和工具等通过开源社区.小微型初创项目而衍生,不再由IT或互联网巨头独自垄断,这为IT领域各项技术的快速.活跃发展提供了良好的温床,开源技术的迅速发展

IBM云计算架构师:Mesos新功能以及roadmap简介

今天主要为大家介绍下Mesos社区,分享Mesos最近发布的一些新功能,以及未来会做的一些项目. 1 Mesos社区介绍  Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核,是DCOS,也就是我们通常所说的数据中心操作系统的的基础.Mesos最初是由加州大学伯克利分校的AMPLab开发的. 我们可以看到2014年参加mesos conf的是260多人,2015年在西雅图一下涨到了700多人,所以mesos在2015年是发展迅猛的一年.现在在mesos社区贡献代码的主

OpenStack、Kubernetes、Mesos谁主沉浮?

本文讲的是OpenStack.Kubernetes.Mesos谁主沉浮,[编者的话]历经变迁,由服务器,网络和存储慢慢形成的现代IT大厦,最终会被哪个层次的软件掌控?会是OpenStack吗(虚拟化巨兽VMware也吸纳了这种技术)?或者会是应用调度框架,Mesos(从加州伯克利分校的AMPLab发展而来)吗?会是Kubernetes(从google的borg和Omega作业调度框架发展而来)吗? 这一问题的答案并不像我们期望的那么明显,但是却很值得我们去深入思考.OpenStack已经在数据中