Mesos提供了高效、跨分布式应用程序和框架的资源隔离和共享,支持Hadoop、 MPI、Hypertable、Spark等。
Mesos是Apache孵化器中的一个开源项目,使用ZooKeeper实现容错复制,使用Linux Containers来隔离任务,支持多种资源计划分配(内存和CPU)。提供Java、Python和C++ APIs来开发新的并行应用程序,提供基于Web的用户界面来提查看集群状态。
Mesos中包含四类主要的服务(实际上是一个socket server),它们分别是Mesos Master,Mesos Slave,SchedulerProcess和ExecutorProcess,它们之间通过Protocal Buffer消息进行通信,每种服务内部注册了若干种Protocal Buffer消息处理器,一旦收到某种消息,则会调用相应的消息处理器进行处理。除了以上四种服务之外,Mesos还对外提供了三种可编程组件,分别是Alloctor、Framework Scheduler和Framework Executor,编写这几个组件必须按照要求实现了几个接口,而这些接口将分别被下图中相邻的服务调用。
大部分人看到以上Mesos架构后,均会认为Framework必须是一个通用的框架,比如MapReduce、Storm、Spark等,而Mesos Master负责将资源分配给各个框架,而各个框架的Scheduler进一步将资源分配给其内部的各个应用程序。这种观念是错误的,是对Mesos架构的一种错误解读。
事实上,Framework不仅可以是通用的框架,也可以是像Hadoop的Job或者YARN的Application那样的简单计算任务,也就是说,Framework并需要一定是一个“Framework”,或者一个长时间运行的服务(比如JobTracker等),也可以是一个短生命周期的Job或者Application。如果让Framework对应一个Hadoop Job,则可以这样设计Framework Scheduler和Framework Executor:
(1)Framework Scheduler功能
Framework Scheduler负责按照作业的输入数据量,将之分解成若干任务,并为这些任务申请资源、监控这些任务的运行状态,一旦发现某个任务运行失败则重新为之申请资源。
(2)Framework Executor功能
为一个节点上的Map Task或者Reduce Task准备运行环境,包括准备各种jar包、二进制文件,设置必要的环境变量,进行必要的资源隔离,启动Jetty Shuffle以为Reduce Task提供远程数据拷贝服务等,接收来自Framework Scheduler的命令(启动任务、杀死任务等),并执行。
通过上面的介绍可以知道,Framework Scheduler只负责运行一个Hadoop Job,而如果你对YARN比较熟悉,便会发现者正是YARN中的MapReduce ApplicationMaster做的事情,没错,Mesos与YARN的设计架构如此的相近,以至于我们很容易通过修改YARN 的任何一个ApplicationMaster,让它作为一个Framework Scheduler运行在Mesos中。
最近Mesos提供了一个mesos-submit工具(https://github.com/apache/mesos/blob/trunk/docs/Using-the-mesos-submit-tool.md,注意,该工具尚不完善),该工具可以让用户的Framework Scheduler运行在任何一个Mesos Slave上,以防止客户端运行过多的Framework Scheduler,这样,Mesos的整个架构和工作流程已经变得与YARN相差无几了。
为了让大家更容易理解Mesos和YARN在架构上的相似性,下面给出了Mesos和YARN的组件对应表:
Mesos中的组件 | YARN中的组件 | 功能 |
Mesos Master | Resource Manager | 整个集群的资源管理和调度 |
Mesos Slave | Node Manager | 单个节点的资源管理(资源隔离、汇报等)、任务启动等 |
Framework Executor | ||
Framework Scheduler | ApplicationMaster | 单个应用程序的管理和资源二次调度,基本操作均包括注册、资源申请/获取、资源分配(给内部的任务)等。 |
既然Mesos和YARN如此的相近,那么我们到底应该使用哪一个呢?或者说,哪一个系统更有前景?
就目前看来,YARN在以下几个方面存在明显优势:(1)人力投入大。目前YARN有专门的公司(hortonwork)维护和开发 (2)知名度高。YARN之前从Hadoop 1.0中演化而来,继承了Hadoop的知名度,且有大量公司和开发人员共享patch。然而,Mesos最大优点的设计简单、容易上手使用,它不像YARN那样,一个资源的分配过程要涉及到若干个状态机,且每种状态机十几种状态,十几种事件。但稳定性看,两个系统都处于研发和测试阶段,离稳定可用还有一段距离。
http://www.cnblogs.com/xinsheng/p/3803137.html
相关推荐
这些步骤是实现Mesos集群和ZooKeeper集群成功运行的基础。 Marathon、Mesos和ZooKeeper三者结合使用,可构成一个强大的分布式计算平台。Marathon提供应用的长期运行支持,Mesos负责集群资源的管理和调度,而...
安装完成后,你可以导入`mesos.interface`模块,并根据Mesos的官方文档或相关的教程来编写你的Mesos框架。 总的来说,`mesos.interface`库为Python开发者提供了与Apache Mesos框架交互的便利工具,使得构建和管理...
11. **Mesos学习资源**:列表提供了丰富的文档、教程、博客和视频,帮助初学者快速入门和深入理解Mesos的原理与实践。 通过研究"awesome-mesos"中的内容,开发者和运维人员可以了解如何部署和管理Mesos集群,优化...
这些文件提供了Mesos的详细文档、教程、API参考和社区资源。 在"描述"中提到的,不建议直接手动编辑"content"目录下的文件,因为这可能会导致版本控制和更新流程的混乱。通常,Mesos项目使用特定的构建工具和流程来...
《Flink基础教程》 Apache Flink是一款开源的流处理和批处理框架,它在大数据实时处理领域扮演着重要角色。本教程旨在帮助初学者快速掌握Flink的基础知识,包括其核心概念、API使用以及常见应用场景。 一、Flink...
部署和运营 Flink 时,有多种选项,包括 YARN、Mesos、Kubernetes 和 Docker 容器,以及使用亚马逊网络服务(AWS)等云平台。这些部署选项可以根据不同的环境需求来选择。 在使用 Flink 的过程中,还需要考虑到性能...
总结来说,这个压缩包可能包含了一份详细的教程或配置脚本,指导用户如何在CoreOS环境中搭建和管理一个多主机的Mesos集群,涵盖了从基础架构到高级特性的各个方面。对于想要学习Mesos和CoreOS集成,以及在大规模集群...
集群管理:掌握Hadoop、YARN或Mesos等集群资源管理与调度系统。 数据存储:熟悉HDFS、HBase、Cassandra等分布式存储系统的特性和使用。 实时处理:掌握流式数据处理技术,如Apache Kafka、Storm或Flink的实时流...
我看到很多关于如何部署容器或虚拟机的教程,但我总是惊讶地发现它们很少涉及基础架构的负载平衡部分。 在我看来,负载平衡是网络规模基础设施的关键组成部分。 如果您的用户无法访问您的应用程序,为什么还要到处...
这是遵循 Mesosphere 教程设置 Apache Mesos 集群的 Ansible 自动化。 最后,您将获得一个功能强大的 Mesos 集群,其中部署了 nginx 的 Docker 镜像。 入门 在variables.yml ,考虑在aws.idempotency_id全新设置 AWS...
**Flink基础教程** Flink是Apache软件基金会下的一个开源流处理框架,它专注于实时数据流分析,同时支持批处理,提供低延迟、高吞吐量的数据处理能力。本教程将深入浅出地介绍Flink的基本概念、核心功能以及如何...
本教程适合对大数据处理感兴趣的初学者和有一定基础的开发者,无论你是数据分析师、数据科学家还是软件工程师,都能从中获益,提升自己的Spark技能,为处理大规模数据任务打下坚实的基础。通过深入学习和实践,你将...
这份PDF教程涵盖了Spark的生态系统、部署与安装、编程模型、运行框架,以及相关的高级特性,如流处理、SQL支持、机器学习库MLlib和图计算库GraphX,还有Tachyon存储系统。 一、Spark生态圈 Spark生态圈包括一系列...
本教程将详细讲解Spark的安装配置,包括集群搭建和standalone、YARN、Mesos等资源管理器的集成。还将深入探讨RDD的创建、转换和行动操作,以及DataFrame和SQL的应用。Spark Streaming部分会介绍DStream的创建、窗口...
01 Docker简介 02 基本概念 03 安装 04 镜像 05 容器 06 仓库 07 数据管理 08 使用网络 09 高级网络配置 10 实战案例 11 安全 12 Dockerfile 13 底层实现 14 Docker Compose项目 15 Docker Machine项目 ...21 Mesos项目
总结,本教程《Spark企业级大数据项目实战》不仅介绍了Spark的基础理论,还强调了实践操作和项目经验的积累,旨在帮助读者掌握Spark技术,能够在实际工作中灵活运用,解决大数据处理中的各种问题。通过学习,读者...
1. **基础教程**:这些教程通常从安装Spark开始,逐步引导读者进行数据读取、处理和写入,以及基本的并行操作。对于初学者来说,这是理解Spark工作原理的良好起点。 2. **进阶内容**:高级教程会涉及Spark的高级...
标题中的"Spark-学习.rar"表明这是一个关于Apache Spark的学习资源压缩包,可能包含了教程、笔记或者示例代码。标签"spark"进一步确认了这个主题,它是一个强大的分布式计算框架,常用于大数据处理。 "Spark.drawio...