2016年会火的技术之一, Mesos。 花了一些时间, 将Mesos相关的知识整理了一下, 以做备忘。 水平有限, 如有疏漏或谬误之处, 还望指出。
Mesos是一个集群管理平台。 可以理解为是一种分布式系统的kernel, 负责集群资源的分配, 这里的资源指的是CPU资源, 内存资源, 存储资源, 网络资源等。 在Mesos可以运行Spark, Storm, Hadoop, Marathon等多种Framework(框架)。
Mesos的架构主要有Masters(主节点), Slaves(从节点), 和 及在Mesos上运行的Framework(框架)组成。 各个部分的分工如下:
Master: 负责处理Slave节点和Framework间的资源通讯, 根据指定的策略来决定分配多少资源给framework。
Slave: 启动本地进程, 同时向Master报告有哪些资源可用。
Framework: 接收来自Master提供的Slave节点的资源(如CPU和内存), Framework由调度器(负责监控和管理Slave的状态)和执行器(负责在服务器执行应用程序代码)组成。
Mesos的安装部署
需要从官网下载源码进行编译安装, 具体的操作请自行google。 或者参考Mesos的官方文档http://mesos.apache.org/documentation/latest/getting-started/ 或者国内对官方文档的翻译 https://mesos-cn.gitbooks.io/mesos-cn/content/primer/Mesos-of-Getting-Started.html
Mesos的生态
Mesos本身只提供资源的分配, 并不涉及存储, 任务调度等功能, 所以它要和其它软件或者系统搭配使用才能构成完整的分布式系统。 Mesos, Docker, Marathon/Chronos, RabbitMQ, HDFS/Ceph构成了一个完整的分布式系统, 分别负责资源分配, 进程管理,任务调度, 进程间通信和文件系统的功能。 这里可以和Linux做一个横向的比较。 如图1所示: