Apache Mesos:让你资源利用率更高、扩展性更好

云计算 虚拟化
Apache Mesos已经成为主要企业一种流行的手段,来进行线性扩展的能力、减少浪费资源消耗,以及抽象存储、CPU和内存。

[[188263]]

Apache Mesos已经成为主要企业一种流行的手段,来进行线性扩展的能力、减少浪费资源消耗,以及抽象存储、CPU和内存。

由加利福尼亚大学伯克利分校的开发人员创建,由包括Twitter、Apple和Netflix在内的主要企业所拥护的Apache Mesos,它是一个开源软件,可以在一组机器上抽象出存储、CPU和内存 Apache Mesos的主要吸引力之一是它线性扩展,这意味着随着负载水平的增加,响应时间可以成比例地增加——基本上是***制的扩展。Mesos将自己称为“分布式系统内核”,因为它采用了Linux内核的核心原则,但却应用在不同的抽象级别。

停止浪费虚拟机资源

数据中心管理员频繁地利用虚拟机(VM),导致企业浪费大量资金用于没有使用的资源上。这个问题通常通过分区来解决,通过分配一组特定的服务器来运行特定的功能。在传统环境中,你可以使用分区来定义需求,例如需要特定数量的服务器,然后相应地分配VM和存储。在公有云中—用户以资源使用为基础计费,无法访问云操作系统——分区将更大或更小的模板用于VM配置上。

虽然这种方法足够有效了,但这对协调服务(colocate services )更实际,这一服务是Apache Mesos输入图片的所在地。分区将机器用于特定任务,例如数据库服务器,另一个则用于运行,例如Web服务器。协调更有效率,因为它允许你在VM或服务器上运行多个服务。它也降低了成本,因为在同一台服务器上运行多个服务减少了所需的服务器数量。 Mesos不是依靠分区来运行服务的,而是使用托管方式来允许软件根据需要获取资源。就技术术语而言,Mesos用自己的框架替代你正在使用的资源管理器,并实现调度和执行接口的功能。

Mesos与个人软件、Docker容器,和配置为使用Mesos作为资源管理器的大型数据集群协同工作。Apache Mesos不是VM的业务流程系统。Mesos还使用Linux控制组(也称为cgroups)来限制资源,优先处理进程并进行计算。这在公有云中很有用,因为它允许供应商根据使用的资源来对客户收费。Cgroups在传统环境中也很有用,因为它们可以限制进程,从而不会占用机器资源。

Mesos和YARN解决分区问题

Apache Hadoop还有另一个资源协调器YARN,它是Apache Hadoop MapReduce的资源管理员,执行与Mesos大致相同的功能。事实上,Myriad是一个开源项目,它可以让数据中心同时使用这两种产品。例如,如果你想使用Mesos运行容器应用,又想使用YARN来运行Hadoop,那么可以一起使用Mesos和YARN。

如果我们仔细看看雅虎重写了Hadoop添加了YARN的原因,我们就可以更好地了解Mesos和YARN的功能。

为YARN编写框架是一项复杂的任务,这更适合于大型软件产品的工程师,如Apache Spark,而不是最终用户。Hadoop的配置使得使用YARN更容易。在集群环境中,你可以简单地编辑名称节点上的配置文件,然后把整个Hadoop安装复制到日期节点上——YARN可以在不需要任何进一步更改配置的情况下工作。

Hadoop早期版本的主要问题是分区。通过分区,你可以指定插槽来运行映射作业或将作业减少到Hadoop集群中的机器上。一旦你分配了一个插槽来运行一个映射作业,你就不能使用它来运行减少作业,反之亦然。假设你已经分配了10个插槽来运行映射作业,10个插槽来在Hadoop集群的机器上减少作业。现在,我们假设Hadoop需要运行11个映射 作业,你会发现你限制了自己,因为你没有为映射 作业分配足够的插槽,而且你了不能使用任何额外的插槽分配给减少 工作。这个问题清楚地表明,我们需要一个更好的方式来共同服务,并取消分区。对此,Apache做出了回应,从而让YARN和Mesos可以排除服务。

Apache Mesos架构

Apache Mesos架构由一个主守护进程组成,可以管理每个群集节点上运行的代理守护程序。代理程序也使用了cgroup来确保它们在已分配的内存、CPU和存储空间中工作。每个代理使用一个Mesos框架运行任务。该框架由两个组件组成:调度程序——其向主机注册以接收资源;执行器——其从调度器接收这些资源并使用它们运行框架的任务。实际上,执行器 会识别出哪正在运行的应用程序资源可用。

Mesos和容器编排

像Kubernetes和Docker Swarm一样,Mesos也执行容器编排。Mesos使用三种类型的容器技术:Composing,它允许不同的容器技术一起运行;Docker和Mesos自己的容器化,这是默认配置。

Apache Mesosphere

Apache Mesosphere是向原始Apache Mesos框架添加附加功能的软件; 它包括Aurora 、Chronos和Marathon。

由Twitter开发运行无状态服务,如Java VM和Web服务器,Apache Aurora是为长期运行和cron工作而设计的框架。Apache Chronos是一个弹性分布式系统,表示作业之间的依赖关系。由Mesosphere撰写,Apache Marathon是一个可以扩展到数千个物理服务器的容器编排系统。Aurora、Chronos和Marathon都使用JSON和REST API与Mesos接口。

帮助创建Mesos的Twitter工程师之一在DockerCon上表示,他建议Mesos用户在家庭实验室中要至少使用三台机器来运行工作中的Mesos原型。Apache为有兴趣尝试Mesos的用户提供了minimesos实验和测试工具。Minimesos包括一个bash shell,你可以在其中部署Mesos Elasticsearch框架。

主流企业牛拥抱Mesos

你可以想像,像Uber那样的企业有一些重要的数据处理需求。Uber使用Apache Cassandra数据库——一个NoSQL面向列的数据库来存储位置数据。面向列的数据库一次写入一行/列组合,而不是写入整行列,因此它不会在空列中浪费空间。面向列的数据库还将列保持在一起,以便快速检索。

除了依靠Mesos跟踪数据,Uber还定期向Mesos提供代码。在2016年,Uber写了一个名为DC / OS Apache Cassandra的扩展,这使得在DC / OS上部署Mesos更容易。DC / OS协调主代理关系中的多个Mesos代理。像Mesos一样,DC / OS是分布式操作系统,但具有配置管理Marathon和Chronos等其他功能。你可以在DC / OS的顶部运行Hadoop、Spark、Cassandra等等,因为它是可扩展的。最近,DC / OS Apache Cassandra被集成到了Mesosphere DC / OS中。

Netflix也是Apache Mesos的主要用户和贡献者。Netflix表示,它运行在亚马逊弹性云计算(EC2)上,并使用Mesos提供“细粒度的资源分配到可以打包到单个EC2实例的各种大小的任务上。2015年,Netflix开发了Fenzo,这是Apache Mesos框架的开源调度程序。Fenzo管理部署的调度和资源分配,并向Mesos添加集群自动缩放功能。

责任编辑:武晓燕 来源: TechTarget中国
相关推荐

2010-06-30 17:15:39

向外扩展SQL Ser

2010-07-01 11:38:13

向外扩展 SQL Se

2020-10-31 21:53:02

机器学习人工智能AI

2010-07-21 11:21:05

SQL Server

2013-04-02 09:15:40

服务器虚拟化

2010-05-12 11:50:29

2012-11-07 15:07:30

VMware虚拟化

2018-04-10 14:38:10

区块链

2015-05-13 17:15:01

Elasticsear分布式搜索插件

2009-09-03 17:18:40

C#扩展性对象模型

2009-09-03 17:33:08

C#常规扩展性模型

2021-09-02 09:42:11

测试软件可扩展性开发

2022-11-29 11:33:30

戴尔

2015-10-15 09:09:38

Oracle数据库华为

2023-10-13 09:27:47

智能容器

2012-06-04 11:04:46

虚拟化

2020-11-03 12:45:07

Python

2022-09-05 15:17:34

区块链比特币可扩展性

2012-05-08 15:04:12

Platform

2015-09-07 11:54:25

云计算数据中心资源利用
点赞
收藏

51CTO技术栈公众号