什么是Mesos
Apache Mesos是由加州大学伯克利分校的AMPLab首先开发的一款开源群集管理软件,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等应用架构。
Mesos特性
- 可扩展到10000个节点
- 使用ZooKeeper实现Master和Slave的容错
- 支持Docker容器
- 使用Linux容器实现本地任务隔离
- 基于多资源(内存,CPU、磁盘、端口)调度
- 提供Java,Python,C++等多种语言 APIs
- 通过Web界面查看集群状态
- 新版本将支持更多
架构说明
Mesos架构图
说明
Mesos本身包含两个组件:Master Daemon和Slave Daemon。
- Master Daemon
- 管理所有的Slave Daemon。
- 用Resource Offers实现跨应用细粒度资源共享,如cpu、内存、磁盘、网络等。
- 限制和提供资源给应用框架使用。
- 使用可拔插的模块化的架构,方便增加新的策略控制机制。
- Slave Daemon
- 负责接收和管理Master发来的需求Task
- 支持使用各种环境运行各种Task,如Docker、VM、进程调度(纯硬件)。
- Master Daemon
Mesos上的task由2个组件管理:调度器(Scheduler)和执行进程(Executor Process)
- 调度器(Scheduler)
- 调度器通过注册Mesos Master获得集群资源调度权限
- 调度器可通过MesosSchedule Driver接口和Mesos Master交互
- 执行进程(Executor Process)
- 用于启动框架内部的task
- 不同的调度器使用不同的Executor
- 调度器(Scheduler)
Mesos集群为了避免单点故障,所以使用Zookeeper进行集群交互。