Apache Mesos:让你资源利用率更高、扩展性更好
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》
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添加集群自动缩放功能。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
虚拟化迷宫:应用分层放哪好?
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 分层无处不在。婚礼上肯定会有分层蛋糕。寒冷的冬天外出的人们肯定会里三层外三层穿很多来保暖。地球本身也是有很多层组成的。因此分层成为应用虚拟化的一部分也是顺其自然的事儿。 应用分层可能仍旧是有些小众的技术,但因其用途广泛获得了人们的关注。因为应用分层允许一些IT管理人员准确地定位到需要使用特定应用的用户并直接向他们交付应用。 由于这一新兴技术仍旧在不断发展,IT管理员必须了解其工作原理,并与目前市场上主流的应用虚拟化进行对比。 什么是应用分层? 应用分层是一种基于不同的标准比如分组或者地理位置向最终用户交付虚拟应用的方法。应用分层帮助管理员向正确的用户交付正确的应用。应用与虚拟桌面在不同的层运行。管理员可以独立于虚拟桌面的基础镜像对应用进行修改、升级以及管理。因此,管理员需要处理的基础镜像就更少了,而且甚至所有的虚拟桌面只需要使用单个黄金镜像。 通过分层交付的应用与操作系统进行交互,就好像应用是安装在本地一样。当虚拟应用必须直接与用户的设备、内核驱动或者其他应用进行交互时,应用分层恰恰是理想的选择。 应用分层工作原理...
- 下一篇
走出NFV与虚拟机误区 或避免再陷“软件垄断”
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 IHS 近期发布的报告显示,包括硬件、软件和服务在内的全球NFV市场规模,将在2020年达到155亿美元。近年来,移动运营商在软件领域的投入要远远大于在服务器、存储以及交换机硬件方面的投入,足以见得电信行业想通过NFV技术将重心从硬件转移到软件的决心。 不过运营商在发展NFV的过程中,由于对新兴技术理解不足、现网商用经验匮乏等原因,会产生诸多误区。比如,很多运营商认为NFV需要用虚拟机承载,并且只能用某家设备厂商提供的软件虚拟出来的虚拟机。这就造成很多设备厂商打着“底层优化”的幌子,对运营商进行产品的“捆绑销售”。本文将针对“NFV与虚拟机的误区”进行详细解析。 虚拟机应按需求部署 在网络架构中,虚拟机的出现是因为物理服务器处理能力太强,某个应用独立占用过于浪费,所以将物理机的处理能力“一分为N”,在物理服务器上部署一个虚拟化软件,将物理服务器的CPU、内存和I/O设备进行“虚拟化”后再次共享,模拟出多台虚拟的服务器。 但是虚拟化的过程本身是需要消耗不小的性能。为了模拟出一个“虚拟机”,也需要额外的附件,这些附件包...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Mario游戏-低调大师作品
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装Docker,最新的服务器搭配容器使用