What is Mesos? A distributed systems kernel
Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos最初是由加州大学伯克利分校的AMPLab开发的,后在Twitter得到广泛使用。
Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.
Mesos is built using the same principles as the Linux kernel, only at a different level of abstraction. The Mesos
kernel runs on every machine and provides applications (e.g., Hadoop, Spark, Kafka, Elasticsearch) with API’s for
resource management and scheduling across entire datacenter and cloud environments.
Mesos的起源于Google的数据中心资源管理系统Borg。Twitter从Google的Borg系统中得到启发,然后就开发一个类似的资源管理系统来帮助他们摆脱可怕的“失败之鲸”。后来他们注意到加州大学伯克利分校AMPLab正在开发的名为Mesos的项目,这个项目的负责人是Ben Hindman,Ben是加州大学伯克利分校的博士研究生。后来Ben Hindman加入了Twitter,负责开发和部署Mesos。现在Mesos管理着Twitter超过30,0000台服务器上的应用部署,“失败之鲸”已成往事。
Mesos中包含四类主要的服务(实际上是一个socket server),它们分别是Mesos Master,Mesos Slave,SchedulerProcess和ExecutorProcess,它们之间通过Protocal Buffer消息进行通信,每种服务内部注册了若干种Protocal Buffer消息处理器,一旦收到某种消息,则会调用相应的消息处理器进行处理。
Mesos采用的也是现在分布式集群中比较流行的Master/Slave主从集群管理架构,Mesos master节点是整个集群的中枢,它责管理和分配整个Mesos集群的计算资源,调度上层Framework提交的任务,管理和分发所有任务的状态。这种主从架构设计简单,能够满足大多数正常情况下的集群运作需求,目前仍然存在于很多分布式的系统中,比如Hadoop、MySQL集群等。但是这种简单的设计存在一个致命缺陷,就是Mesos master必须做为一个服务程序持续存在于集群中,它虽然孤立,但是地位举足轻重,不容有失。
在单个Mesos master节点的集群中,如果Mesos master节点故障,或者服务不可用,虽然在每一个Slave节点上的任务可以继续运行,但是集群中新的资源将无法再分配给上层Framework,上层Framework将无法再利用已经收到的offer提交新任务,并且无法收到正在运行任务的状态更新。为了解决这个问题,提高Mesos集群的高可用性,减少Mesos master节点故障所带来的影响,Mesos集群采用了传统的主备冗余模式(Active-Standby)来支持一个Mesos集群中部署多个Mesos master节点,借助于ZooKeeper进行Leader的选举。选举出的Leader负责将集群的资源以契约(offer)的形式发送给上层的每一个Framework,并处理集群管理员与上层Framework的请求,另外几个Mesos master节点将作为Follower一直处于备用状态,并监控当前的状态,当Mesos master节点宕机,或服务中断之后,新Leader将会很快从Follower中选出来接管所有的服务,减少了Mesos集群服务的宕机时间,大大提高了集群的可用性。
Kubernetes是一个对于虚拟机或者实体机场景具有Google风格集群管理功能的开源项目。它能良好的运行于现代的操作系统环境(比如CoreOS和Red Hat Atomic),并且提供可以被你管控的轻量级的计算节点。
Mesos是基于两阶段调度的集群管理器。高度简化来说,Mesos用来管理集群资源,并且向其提供高层级的能接受这些资源来启动任务的“框架”。相反,Kubernetes是基于Borg背后的理念而设计的集群管理器。Google的集群管理器没有两阶段调度的概念。
相关推荐
Set up Mesos on different operating systems Use the Marathon and Chronos frameworks to manage multiple applications Work with Mesos and Docker Integrate Mesos with Spark and other big data frameworks ...
这些资源被抽象为“资源池”,然后按需分配给运行在Mesos之上的各种框架。这样的架构允许框架高效地共享资源,并且能够按任务的实际需求动态扩展。 2. 容器服务的使用场景。容器化技术的兴起为应用的打包、分发和...
Apache Mesos 是一个分布式系统内核,旨在高效地管理和调度计算资源。它的核心设计目标是为大规模分布式应用程序提供一个统一的、抽象化的资源管理层。Mesos 的架构允许它在资源有限的环境中,如数据中心,有效地...
Apache Mesos is a cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks. It allows developers to concurrently run the likes of Hadoop, ...
《Apache Mesos Cookbook》是一本全面介绍Apache Mesos的指南书籍,不仅涵盖了基础知识和核心功能,还提供了丰富的实践案例和高级技巧。对于想要利用Mesos构建可靠、高效的数据中心基础设施的专业人士来说,本书是不...
HDFS on Apache Mesos.zip
此外,书中还会介绍Mesos的扩展机制,这对于希望定制Mesos功能或者开发新的Mesos功能的读者来说是非常有价值的。 值得一提的是,尽管本书提供了大量关于Mesos的专业知识和实践经验,但是作者在书中也明确声明,书中...
该文档介绍了为什么使用Apache Mesos和Docker,以及如何使用的问题。
Apache Mesos Apache Mesos是一个群集管理器,可提供有效的资源隔离和跨分布式应用程序或框架的共享。 它可以在动态共享的节点池上运行Hadoop,Jenkins,Spark,Aurora和其他框架。 请访问访问我们。 邮件列表 ...
Apache Mesos(mesos-1.11.0.tar.gz、mesos-1.11.0.zip) 将 CPU、内存、存储和其他计算资源从机器(物理或虚拟)中抽象出来,使容错和弹性分布式系统能够轻松构建和有效运行。 Apache Mesos 是使用与 Linux 内核...
Apache Aurora 允许您将 Apache Mesos 集群用作私有云。它支持运行长时间运行的服务、cron 作业和临时作业。
为Apache Mesos进行绑定正在开发针对Apache Mesos的Pure Go语言绑定。 与其他纯实现一样,mesos-go使用HTTP有线协议直接与正在运行的Mesos主服务器及其从属实例进行通信。 该项目的目标之一是提供一种惯用的Go API,...
Apache Mesos是分布式系统领域的重要项目之一,旨在为数据中心提供一个统一的资源管理平台。该书由Roger Ignazio撰写,并由Florian Leibert作序推荐,于2016年由Manning出版社出版发行。 #### 二、主要内容 本书...
RENDLER, 一个用于 Apache Mesos的渲染网络爬虫 网络爬虫框架。 查看附带的幻灯片,了解更多内容。RENDLER由三个主要组件组成:CrawlExecutor 扩展 mesos.ExecutorRenderExecutor 扩展 mesos.ExecutorRenderi
框架是运行在Mesos之上的应用程序,它们可以请求和使用资源来执行任务。 Mesos的工作流程大致如下:首先,框架向Master注册并声明其资源需求;然后,Master将资源分配给各个框架;接着,框架将任务提交给Master,由...
文档中还介绍了如何使用Marathon和Bamboo这样的Mesos框架,以及与之相关的用户文档和最佳实践。 为了配合文档的丰富内容,Mesos社区也提供了交流社区、Meetup技术沙龙和微信群,为社区成员提供交流和讨论的平台。...
开源项目“vektorlab-mesos-cli”是一个专为Apache Mesos设计的强大命令行界面工具。Apache Mesos是一种分布式系统内核,它能够高效地在集群中管理和调度资源,广泛应用于数据中心的操作系统。Mesos CLI由vektorlab...