本文共 3436 字,大约阅读时间需要 11 分钟。
apache mesos
是一个群集管理器,可在分布式应用程序或框架之间提供有效的资源隔离和共享。 Mesos是最初由加利福尼亚大学伯克利分校开发的开源软件。 它位于应用程序层和操作系统之间,可以更轻松地更有效地在大规模集群环境中部署和管理应用程序。 它可以在动态共享的节点池上运行许多应用程序。 Mesos的知名用户包括 ,Airbnb,MediaCrossing,Xogito和Categorize。
Mesos利用现代内核的功能(Linux中的“ cgroups”,Solaris中的“ zones”)为CPU,内存,I / O,文件系统,机架位置等提供隔离。最大的想法是收集大量的异构资源。 Mesos引入了称为资源提供的分布式两级调度机制。 Mesos决定为每个框架提供多少资源,而框架则决定接受哪些资源以及在其上运行哪些计算。 它是一个瘦资源共享层,它通过为框架提供访问集群资源的公共接口,从而实现跨各种集群计算框架的细粒度共享。该想法是将多个分布式系统部署到共享的节点池中,以提高资源利用率。 许多现代工作负载和框架都可以在Mesos上运行,包括Hadoop,Memecached,Ruby on Rails,Storm,JBoss Data Grid,MPI,Spark和Node.js,以及各种Web服务器,数据库和应用程序服务器。
Apache Mesos中的节点抽象( )
与PC操作系统管理对台式计算机上资源的访问方式类似,Mesos确保应用程序可以访问群集中所需的资源。 Mesos无需为应用程序的不同部分设置大量的服务器群集,而是允许您共享一个服务器池,这些服务器池都可以运行应用程序的不同部分,而彼此之间不会相互干扰,并且可以跨群集动态分配资源。需要。 这意味着,如果网络流量很大,它可以轻松地将资源从Framework1(例如,进行大数据分析)中转移出去,并将其分配给Framework2(例如,Web服务器)。 它还减少了部署应用程序的许多手动步骤,并且可以自动转移工作负载以提供容错能力并保持较高的利用率。
整个集群之间的资源共享提高了吞吐量和利用率( )
Mesos本质上是数据中心内核,这意味着它实际上是将运行中的工作负载相互隔离的软件。 它仍然需要其他工具来使工程师使他们的工作负载在系统上运行并管理这些作业的实际运行时间。 否则,某些工作负载可能会消耗所有资源,或者重要的工作负载可能会被不太重要的工作负载碰巧碰巧,而这些恰好需要更多资源。因此,Mesos不仅需要内核,还需要Chronos调度程序 ,这是cron的替代品,用于自动启动和停止服务(和处理故障)运行在Mesos之上。 Mesos的另一部分是Marathon ,它提供了用于启动,停止和扩展服务的API(Chronos可能是其中之一)。
Chronos和Marathon中的工作量( )
建筑
Mesos包含一个主进程和一个框架,这些进程管理在每个群集节点上运行的从属守护程序,以及在这些从属上运行任务的框架。 主机使用资源报价在各个框架之间实现细粒度的共享。 每个资源提供都是多个从属服务器上的空闲资源的列表。 主机根据组织策略(例如公平共享或优先级)决定为每个框架提供多少资源。 为了支持多种框架间分配策略,Mesos允许组织通过可插入的分配模块定义自己的策略。
具有两个运行框架的Mesos体系结构( )
每个在Mesos上运行的框架都由两个组件组成:一个向主服务器注册以提供资源的调度程序,以及一个在从属节点上启动以运行框架任务的执行程序进程。 在主服务器确定要为每个框架提供多少资源的同时,框架的调度程序会选择要使用的资源。 当框架接受提供的资源时,它会向Mesos传递要在其上启动的任务的描述。
Mesos中的框架调度( )
上图显示了如何安排框架运行任务的示例。 在第一步中,从站1向主站报告它有4个CPU和4 GB可用内存。 然后,主服务器调用分配模块,该模块告诉它应该为框架1提供所有可用资源。 在第二步中,主服务器向框架1发送描述这些资源的资源提议。在第三步中,框架的调度程序使用两个CPU在主服务器上响应有关要运行的两个任务的信息。 1GB RAM用于第一个任务,以及1个CPU; 2 GB RAM用于第二项任务。 最后,在第四步中,主服务器将任务发送给从服务器,从服务器将从资源分配适当的资源给框架的执行器,该执行器又启动两个任务(标有虚线边框)。 因为1个CPU和1 GB的RAM仍然可用,所以分配模块现在可以将它们提供给框架2。此外,当任务完成并且新资源变为可用时,此资源提供过程将重复进行。
虽然Mesos提供的瘦接口允许其扩展,并允许框架独立发展。 框架将拒绝那些不满足其约束条件的提议,而接受那些满足条件的提议。 特别是,我们发现一种称为延迟调度的简单策略(其中框架等待有限的时间来获取存储输入数据的节点)会产生几乎最佳的数据局部性。
在Apache Mesos之上构建了许多软件项目:
云计算和大数据之类的趋势正在使组织从整合转移到可能存在多个专用于特定任务的分布式系统的情况。 借助Mesos的Docker执行器,Mesos可以与Chronos和Marathon框架一起运行和管理Docker容器。 Docker容器提供了一致,紧凑和灵活的打包应用程序构建方式。 在Mesos上使用Docker交付应用程序有望提供一个真正弹性,高效且一致的平台,以在本地或云中交付各种应用程序。
最初发布在 。 根据知识共享进行的修订。
翻译自:
apache mesos
转载地址:http://cwbzd.baihongyu.com/