首先,Mesos 是一个资源调度框架,并非一整套完整的应用管理平台,本身是不能干活的。但是它可以比较容易的跟各种应用管理或者中间件平台整合,一起工作,提高资源使用效率。
架构
master-slave 架构,master 使用 zookeeper 来做 HA。
master 单独运行在管理节点上,slave 运行在各个计算任务节点上。
各种具体任务的管理平台,即 framework 跟 master 交互,来申请资源。
基本单元
master
负责整体的资源调度和逻辑控制。
slave
负责汇报本节点上的资源给 master,并负责隔离资源并执行具体的任务。
隔离机制当然就是各种容器机制了。
framework
framework 是实际干活的,可以理解为 mesos 上跑的 应用
,需要注册到 master 上。
一般包括两个主要组件:
- scheduler:注册到主节点,按照作业分解为任务,并申请资源并监控任务运行状况(类似 YARN 中的 ApplicationMaster);
- executor:安装在 slave 节点上,负责执行本 framework 的具体任务。
framework 分两种:一种是对资源需求可以 scale up 或者 down 的(Hadoop、Spark);一种是对资源需求大小是固定的(MPI)。
这些组件之间通过 Protocal Buffer 消息进行通信,实际上就是一个个 socket server。
调度
对于一个资源调度框架来说,最核心的就是调度机制,怎么能快速高效的完成对某个 framework 资源的分配(最好当然是能直接猜到它的实际需求)。
两层调度算法:
master 先调度一大块资源给某个 framework,framework 自己的 scheduler 再实现内部的细粒度调度。
调度机制支持插件。默认是 DRF。
基本调度过程
调度通过 offer 方式交互:
- master 提供一个 offer(一组资源) 给 framework;
- framework 可以决定要不要,如果接受的话,返回一个描述,说明自己希望如何使用和分配这些资源(可以说明只希望使用部分资源,则多出来的会被 master 收回);
- master 则根据 framework 的分配情况发送给 slave,以使用 framework 的 executor 来按照分配的资源策略执行任务。
过滤器
framework 可以通过过滤器机制告诉 master 它的资源偏好,比如希望分配过来的 offer 中节点上至少空闲多少资源,或者只接受某些节点。
主要是为了加速资源分配的收敛。
回收机制
master 可以通过回收计算节点上的任务来动态调整长期任务和短期任务的分布。如果某个 framework 在超时内没有为分配的资源返回要运行的任务,则回收该资源。
HA
master
master 节点存在单点失效问题,所以肯定要上 HA,目前主要是使用 zookpeer 来热备份。
同时 master 节点可以通过 slave 和 framework 发来的消息重建内部状态(具体能有多快呢?这里不使用数据库可能是避免引入复杂度。)。
framework 通知
framework 中相关的失效,master 将发给它的 scheduler 来通知。
依赖的第三方技术
glog
开源的 C++ 日志库。
gmock
开源 C++ 单元测试框架。
Libprocess
基于 C/C++ 实现的高效的基于消息的网络通信模型,可以用于多个组件之间的通信。考虑规模的软件基本上都喜欢基于消息/事件的松散耦合模型。
Protocol buffer
跨语言的对象传递(序列化、反序列化),类似 thrift。
zookeeper
用于解决 master 节点集群的 HA。
相关推荐
10. **Mesos在云环境中的应用**:Mesos也常被用于云环境,可以作为公共云和私有云的基础架构,提供弹性扩展和资源优化。 总的来说,《Mastering Mesos》这本书将带你全面理解Mesos的原理、功能和实际应用,帮助你...
《Mesos in Action》是一本全面介绍Apache Mesos技术原理与实践的书籍。Apache Mesos是分布式系统领域的重要项目之一,旨在为数据中心提供一个统一的资源管理平台。该书由Roger Ignazio撰写,并由Florian Leibert...
1. **Mesos基本概念**:包括Mesos的定义、目标和它在分布式系统中的角色。 2. **Mesos架构**:Mesos的层次结构,包括Master节点、Slave节点和框架的交互。 3. **资源调度**:Mesos如何通过其调度器实现资源的分配和...
此外,对于Mesos的工作原理和资源分配策略的掌握也是必要的,以便于在使用过程中能够有效地排查和解决可能出现的问题。 在国内,随着企业对数据中心管理和PaaS需求的增长,Mesos的应用前景被看好。传统运维向云时代...
Docker 基本概念和架构 Docker 容器 Docker 容器的数据管理 Docker 容器的网络连接 Docker 技术原理 Docker 镜像与仓库(一) Docker客户端和守护进程 Docker容器的跨主机访问 Docker源码分析(一)Docker介绍 ...
一、Mesos 架构与设计原理 Mesos 的设计理念源于 Google 的 Borg 系统,它将集群视为一个单一的抽象资源池,通过 Master 和 Slave 节点的架构实现资源的分配和管理。Master 节点负责全局调度,Slave 节点则运行在每...
《Spark技术内幕深入解析Spark内核架构设计与实现原理》这本书深入探讨了Apache Spark这一分布式计算框架的核心架构和实现机制,旨在帮助读者全面理解Spark的工作原理,并能够有效地利用其进行大数据处理。...
本书《Apache Mesos Essentials》旨在为读者提供Mesos的基础使用指南,同时深入探讨其内部工作机制,以及如何基于Mesos进行开发。这本书由Dharmesh Kakadia撰写,他在进入微软研究公司(Microsoft Research)之前,...
1. **Mesos架构**:Mesos由Master、Slave(在最新版本中改称为Agent)和Executor三部分组成。Master负责全局资源调度,Slave在每个节点上运行,汇报资源状态,Executor则执行特定任务。 2. **资源管理**:Mesos使用...
桌面云章节讲解桌面云概述、桌面云架构与关键技术、桌面云典型应用案例等内容,并实践基于 OpenStack 的桌面云。 软件开发云章节讲解软件开发云的概念、华为软件开发云服务、DevCloud 技术方案等内容,并实践 ...
- 该专题分为两部分,第一部分介绍了Mesos的基本概念和发展背景,以及它如何为软件定义数据中心提供支持。 - 第二部分则详细探讨了Mesos的体系结构和工作流程,包括资源管理、任务调度等方面,帮助读者理解Mesos...
《Spark技术内幕:深入解析Spark内核架构设计与实现原理》是一本专注于深入探究Apache Spark核心技术的书籍。这本书旨在帮助读者理解Spark的内部工作机制,包括其架构设计、分布式计算模型以及机器学习库MLlib的实现...
《Spark技术内幕:深入解析Spark内核架构设计与实现原理》是张安站撰写的一本专著,专注于探讨Apache Spark这一大数据处理框架的核心机制。本书深入浅出地讲解了Spark的内部工作原理,旨在帮助读者理解和掌握Spark在...
《Spark技术内幕:深入解析Spark内核架构设计与实现原理》是一本专注于Spark技术深度剖析的书籍,旨在帮助读者理解Spark的核心架构、设计理念以及其实现机制。这本书高清完整,包含了完整的书签,方便读者查阅和学习...
### Spark运行架构与解析 #### 一、Spark运行架构概览 Spark是一个高效的数据处理框架,它通过一种灵活且强大的编程模型支持多种计算模式,包括批处理、流处理以及交互式查询等。为了更好地理解Spark如何高效地...