下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

怎样合理利用Apache Mesos?

作者:课课家教育     来源: http://www.kokojia.com点击数:964发布时间: 2017-07-29 13:00:51

标签: 数据库虚拟化数据管理

  今天老师带大家来了解一下怎样区分Mesos和YARN解决分区的问题,以及最基础的概念知识讲解,相信此次内容会给大家带来最直观的感受,以及会让大家更好地了解Mesos和YARN的功能,可以对对此知识点更加的了解,那么,就来看下面的内容吧!先讲一下ApacheMesos的基本理论知识吧!

怎样合理利用Apache Mesos?_数据库_虚拟化_数据管理_课课家教育

  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可以排除服务。

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自己的容器化,这是默认配置。

  可知,Mesos包含两个组件:Master Daemon和Slave Daemon,Master Daemon管理所有的Slave Daemon,Slave Daemon运行在各个节点上。通过资源供给(Resource Offers)Master Daemon实现了跨应用的细粒度资源(CPU、内存、...)共享。每个资源供给(Resource Offers)包含一组资源列表。对照既定组织策略(例如共享属性、优先级),Master Dameon决定提供多少资源给每个应用框架。为了支持不同的策略控制,Master Daemon使用可拔插的模块化的架构方便增加新的策略控制机制。运行在Mesos上的应用一般由两部分组件组成:调度器(Scheduler)和执行进程(Executor Process)。调度器注册在Master Daemon上用于决策资源供给,执行进运行在Slave节点上用于运行各个应用任务。当Master Daemon决定供给应用多少资源时,由调度器决定把那里的资源提供该应用使用。当应用决定接受被提供的资源时,它会告诉Mesos需要运行的任务都是什么,Mesos在对应的Slave节点上加载这些任务。

  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的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添加集群自动缩放功能。Apache Mesos是由加州大学伯克利分校的AMPLab首先开发的一款开源群集管理软件,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等应用架构。

  本篇文章主要为大家讲解了ApacheMesos的基本概念分析,当然了,还有对其它功能的分析,以及在各大知名企业的功能介绍和运用技术详解,希望可以给大家带来有用的知识,当然了,这只是一部分,更多的经典内容讲解尽在课课家教育,我们期待您的咨询!

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程