(1)Slave 1 向 Master 汇报其空闲资源:4 个 CPU、4 GB RAM。然后,Master 触发分配策略模块,得到的反馈是 Framework 1 要请求全部可用资源。
(2)Master 向 Framework 1 发送资源邀约,描述了 Slave 1 上的可用资源。
(3)Framework 1 的调度器(Scheduler)响应 Master,需要在 Slave 1 上运行两个任务,第一个任务分配 2 CPUs、1 GB RAM 资源,第二个任务分配 1 CPUs、 2 GB RAM 资源。
(4)最后,Master向 Slave 1 下发任务,分配适当的资源给 Framework 1 的任务执行器(Executor),接下来由执行器启动这两个任务(如图中虚线框所示)。
此时,还有 1 个 CPU 和 1GB 的 RAM 尚未分配,因此分配模块可以将这些资源供给 Framework 2。
资源分配
为了实现在同一组 Slave 节点集合上运行多任务这一目标,Mesos 使用了隔离模块,除了原有的容器隔离技术,还增加了 Docker 作为运行任务的隔离机制。
不管使用哪种隔离模块,为运行特定应用程序的任务,都需要将执行器全部打包,并在已经为该任务分配资源的 Slave 服务器上启动。
当任务执行完毕后,容器会被“销毁”,资源会被释放,以便可以执行其他任务。
参考文献:
1. http://www.open-open.com/news/view/139b98b Mesos vs Kubernetes
2. http://dockone.io/article/686 谈谈Apache Mesos和Mesosphere DCOS:历史、架构、发展和应用
3. http://dongxicheng.org/mapreduce-nextgen/mesos_vs_yarn/ 统一资源管理与调度平台(系统)介绍
4. http://dongxicheng.org/apache-mesos/meso-architecture/ Apache Mesos总体架构
5. http://www.infoq.com/cn/articles/analyse-mesos-part-01/ 深入浅出Mesos(一):为软件定义数据中心而生的操作系统
6. http://www.infoq.com/cn/articles/analyse-mesos-part-02/ 深入浅出Mesos(二):Mesos的体系结构和工作流
7. http://www.infoq.com/cn/articles/analyse-mesos-part-03/ 深入浅出Mesos(三):持久化存储和容错
8. http://www.infoq.com/cn/articles/analyse-mesos-part-04/ 深入浅出Mesos(四):Mesos的资源分配
9. http://www.infoq.com/cn/articles/analyse-mesos-part-05/ 深入浅出Mesos(五):成功的开源社区
10. http://www.infoq.com/cn/articles/analyse-mesos-part-06/ 深入浅出Mesos(六):亲身体会Apache Mesos
没有评论:
发表评论