21
回答
OSC 第 100 期高手问答 —— Apache Mesos
滴滴云服务器,限时包月0.9元,为开发者而生>>>   

OSCHINA 本期高手问答( 11月25 日- 12月1日)我们请来了数人云平台负责人 @wtzhou 来解答 集群管理器 Apache Mesos 方面的问题。

周伟涛,@wtzhou ,现数人科技云平台负责人,曾就职于国际开源解决方案供应商 Red Hat, 红帽认证工程师, mesos contributor, 高级Python开发工程师。 是国内较早一批接触使用docker,mesos等技术的开发者。

数人云:基于 Mesos 和 Docker 技术的云操作系统,让用户像用单机电脑一样管理集群和云端应用。

Apache Mesos是一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行Hadoop、MPI、Hypertable、Spark。由开源中国发出的众包文档翻译悬赏《Apache Mesos 官方文档》也已经翻译完成,欢迎大家查看和使用:http://mesos.mydoc.io/

高手语录

对于 Mesos 我想拿其官网的一句话来介绍它: Mesos 能够管理每台机器的 CPU,内存等资源,让你像操纵单个资源池一样来操纵整个数据中心。

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 集群管理器 Apache Mesos 方面的问题向 @wtzhou 提问,请直接回帖提问。

举报
叶秀兰
发帖于2年前 21回/5K+阅
共有21个答案 最后回答: 2年前

引用来自“Grrrr”的评论

@wtzhou : 我们现在用cloudera这套,能简单介绍下Mesos和cloudera的差别吗?

Mesos的主要目标就是去帮助管理不同框架(或者应用栈)间的集群资源。比如说,有一个业务需要在同一个物理集群上同时运行Hadoop,Storm及Spark。这种情况下,现有的调度器是无法完成跨框架间的如此细粒度的资源共享的。Hadoop的YARN调度器是一个中央调度器,它可以允许多个框架运行在一个集群里。但是,要使用框架特定的算法或者调度策略的话就变得很难了,因为多个框架间只有一种调度算法。比如说,MPI使用的是组调度算法,而Spark用的是延迟调度。它们两个同时运行在一个集群上会导致供求关系的冲突。还有一个办法就是将集群物理拆分成多个小的集群,然后将不同的框架独立地运行在这些小集群上。再有一个方法就是为每个框架分配一组虚拟机。正如Regola和Ducom所说的,虚拟化被认为是一个性能瓶颈,尤其是在高性能计算(HPC)系统中。这正是Mesos适合的场景——它允许用户跨框架来管理集群资源。

Mesos是一个双层调度器。在第一层中,Mesos将一定的资源提供(以容器的形式)给对应的框架。框架在第二层接收到资源后,会运行自己的调度算法来将任务分配到Mesos所提供的这些资源上。和Hadoop YARN的这种中央调度器相比,或许它在集群资源使用方面并不是那么高效。但是它带来了灵活性——比如说,多个框架实例可以运行在一个集群里。这是现有的这些调度器都无法实现的。就算是Hadoop YARN也只是尽量争取在同一个集群上支持类似MPI这样的第三方框架而已。更重要的是,随着新框架的诞生,比如说Samza最近就被LinkedIn开源出来了——有了Mesos这些新框架可以试验性地部署到现有的集群上,和其它的框架和平共处。

引用来自“无锡IT招聘”的评论

@wtzhou :对大多数人来说还不知道什么是mesos,请介绍下他是干什么的有什么用怎么用
你好, Mesos 在国内的资料目前虽然不多,但是你随便百度,谷歌一下,还是有一些的。这里我想拿一个例子来解释 Mesos: 假设某公司需要频繁进行大数据计算,该任务运行时需要n多cpu和内存,为了满足这个需求,我们有两种思路:思路一)使用小型机,单机即可为任务提供足够的资源;思路二)分布式计算,即提供一批普通配置的机器(计算节点),也就是集群,将计算任务拆分到各机器上计算,然后汇总结果。 思路二是当前正在流行的做法,这种方式的优点不再多说。 为了达到思路二的要求,我们需要建立数据中心(集群)。进一步,为了充分利用数据中心(集群)的资源(譬如为不同的任务分配不同资源,按任务优先级分配资源等),我们就需要一个工具来进行整个数据中心资源的管理、分配等, 这个工具就是 Mesos。 与 Mesos 类似的工具还有 Yarn。 除此之外, Mesos 不仅为计算任务offer资源, 它也支持运行长时任务(譬如 web应用)。目前国外好多互联网公司都在使用 Mesos 来作为它们的集群管理工具,这里是一个powered by Mesos list: https://mesos.apache.org/documentation/latest/powered-by-mesos/

引用来自“AndroidMe”的评论

@wtzhou : 您好,Mesos 有哪些典型的应用场景?看了一些介绍,说是能做 Docker 的编排服务。与 OpenStack这样的云平台管理物理机CPU、内存,Cloudera Manager 管理Hadoop集群服务有什么区别?
现在 Mesos 的应用场景非常多,譬如 1)Spark on Mesos [这是标配] 2) Jenkins on Mesos 3) Mesos 做 docker 的编排服务 等。 与 OpenStack 相比, 首先,物理机,虚拟机都可以作为 Mesos 的集群节点;其次, 粒度不同, Mesos 的基本计算单元是容器(LXC) , 而 OpenStack 的是 VM(听说现在也支持docker 容器技术了),前者资源利用率更高。;最后,轻量级, Mesos只负责offer资源给framework,不负责调度资源。 OpenStack 更贴近于 IaaS 层,而 Mesos 在IaaS 之上。所以有人称其为 DCOS,或者分布式操作系统。

引用来自“goofus”的评论

@wtzhou :各方面边界在哪,有什么优劣势,谢谢

这个问题有点模糊。 我就按我的理解把我以前的回答贴过来了。

优点

  1. 资源管理策略Dominant Resource Fairness(DRF), 这是Mesos的核心,也是我们把Mesos比作分布式系统Kernel的根本原因。通俗讲,Mesos能够保证集群内的所有用户有平等的机会使用集群内的资源,这里的资源包括CPU,内存,磁盘等等。很多人拿Mesos跟k8s相比,我对k8s了解不深,但是,我认为这两者侧重点不同不能做比较,k8s只是负责容器编排而不是集群资源管理。不能因为都可以管理docker,我们就把它们混为一谈。
  2. 轻量级。相对于yarn,Mesos只负责offer资源给framework,不负责调度资源。这样,理论上,我们可以让各种东西使用Mesos集群资源,而不像yarn只拘泥于hadoop,我们需要做的是开发调度器(mesos framework)。
  3. 提高分布式集群的资源利用率:这是一个 generic 的优点。从某些方面来说,所有的集群管理工具都是为了提高资源利用率。VM的出现,催生了IaaS;容器的出现,催生了k8s, Mesos等等。简单讲,同样多的资源,我们利用IaaS把它们拆成VM 与 利用k8s/Mesos把它们拆成容器,显然后者的资源利用率更高。(这里我没有讨论安全的问题,我们假设内部子网环境不需要考虑这个。)
缺点
  1. 门槛太高。只部署一套Mesos,你啥都干不了,为了使用它,你需要不同的mesos framework,像Marathon,chronos,spark等等。或者自己写framework来调度Mesos给的资源,这让大家望而却步。
  2. 目前对stateful service的支持不够。Mesos集群目前无法进行数据持久化。即将发布的0.23版本增加了persistent resource和dynamic reserver,数据持久化问题将得到改善。
  3. 脏活累活不会少。Team在使用Mesos前期很乐观,认为搞定了Mesos,我们的运维同学能轻松很多。然而,根本不是那么回事儿,集群节点的优化,磁盘,网络的设置,等等这些,Mesos是不会帮你干的。使用初期,运维的工作量不仅没有减轻,反而更重了。
  4. Mesos项目还在紧锣密鼓的开发中,很多功能还不完善。譬如,集群资源抢占还不支持。

@wtzhou : 我想请教下,如果要做一个云服务平台,Mesos 和 Kubernates 怎么去选型
--- 共有 2 条评论 ---
xds2000目前的现状是Mesos和K8s的生态圈各自都发展的比较好,丢弃哪一个都很吃亏。不如按你个人的喜好,先选择一个投下去先用起来。比如我们数人云,www.shurenyun.com,直接一键部署,这样太方便了。可以快速体验Mesos的好处。 2年前 回复
wtzhou这个要看你的具体需求。据我所知, k8s 目前只支持 docker 而且鲜有生产环境的用例; 而 Mesos 不需要你的应用包到 docker 里面并且其经历过生产环境的考验。 但是, 反过来, k8s 的社区更加活跃,其正在高速发展中,前景非常好。 当然,上述都不是关键, 一个好用的云平台更多的是要有好的产品理念。 请参考 www.shurenyun.com 2年前 回复
@wtzhou :对大多数人来说还不知道什么是mesos,请介绍下他是干什么的有什么用怎么用
--- 共有 4 条评论 ---
导演我躺哪回复 @西夏一品堂 : https://github.com/Dataman-Cloud/Mesos-CN 这里的文档更全面,OSC之前之翻译了Mesos的,这里多了Framework,服务发现一些的翻译。 2年前 回复
叶秀兰回复 @西夏一品堂 : #Reactor# 其他的还在准备,你有推荐吗? 2年前 回复
西夏一品堂回复 @叶秀兰 : OSC除了翻译了Mesos 文档,还翻译了哪些文档? 2年前 回复
叶秀兰可以直接查看官方介绍和文档:http://mesos.mydoc.io/ 2年前 回复
@wtzhou : 您好,Mesos 有哪些典型的应用场景?看了一些介绍,说是能做 Docker 的编排服务。与 OpenStack这样的云平台管理物理机CPU、内存,Cloudera Manager 管理Hadoop集群服务有什么区别?
--- 共有 1 条评论 ---
wtzhoucloudera 那一套我没怎么用过,不好过多评论。 2年前 回复
@wtzhou :对于长时间任务,有没有好的调度器算法或者策略
--- 共有 1 条评论 ---
数人科技请见上面的回答,长任务是依靠马拉松Marathon框架,对于Docker,Mesos+Marathon基本上是现在最成熟的分布式运行框架。 2年前 回复
顶部