Apache Mesos是什么?

jopen 10年前

Apache Mesos的官方网站的描述

分布式系统内核
Mesos采用与Linux kernerl相同的机制,只是运行在不同的抽象层次上。Mesos kernel利用资源管理和调度的API在整个数据中心或云环境中运行和提供引用(例如,Hadoop,Spark,Kafaka,Elastic Search)。即Apache Mesos在整个数据中心根据资源利用率和资源占用情况,在整个数据中心内进行任务的调度 。
主要特性:

  1. 10,000s节点规模;
  2. 利用Zookeeper实现master和slave的高可用;
  3. 支持Docker容器;
  4. 任务之间利用linux容器进行隔离
  5. 多种资源调度(内存,CPU,磁盘,端口)
  6. 支持JAVA,Python和C++ API
  7. 基于WEBUI可视化集成状态查看

提出Mesos论文中的摘要

Mesos是支持在多种计算集群框架(frameworks)间共享服务器集群的平台,利用HADOOP,MPI。提高了集群资源占用率,避免了每 种框架的数据重复。Mesos能够镜像细粒度的资源共享,通过轮流的读取磁盘数据是的frameworks能从本地获取数据。为了满足复杂的资源调度方 法,Mesos引入了称为资源提供的(resource offer)的2层资源调度机制。Mesos决定多少资源分配给frameworks,frameworks决定接受多少资源和决定哪个任务使用多少资 源。

Mesos的目标场景

细粒度的在不同的frameworks之间共享资源。

Apache Mesos架构

Apache Mesos是什么?
Mesos由Mesos master,Mesos slave即其上的任务组成。Mesos master通过resource offer的方式在不同的应用间进行资源共享。每个resource offer包含一个列表。Master按照给定的策略,为每个framework分配资源,利用公平调度、按优先级调度。Mesos提供了插件机制来扩 展,资源分配策略。
运行于Mesos之上的framework有两部分组成:注册到Mesos中的调度器、运行在slave节点的任务执行进程。Master决定分配多少资 源每个framework,framework调度器决定使用master提供的资源哪些资源,然后framework将需要运行任务的描述传递给 Mesos。接着,Mesos在指定的slave上运行任务。

Resource offer的示例

Apache Mesos是什么?

  1. Slave1上报其有4 cpu和4 GB内存空闲。然后,Mesos mater上的资源调度器被唤醒,调度器决定所有的资源都提供给framework1
  2. Mesos master发送resource offer描述给frmework1;
  3. Frame work1通知Mesos master,有占用的任务1和占用的任务2要运行在slave上;
  4. Master发送任务给slave,slave分配资源两个任务,然后运行两个任务。由于还剩余,这可能会分配给Framework2. 还有很赞的一点:Mesos提供了一种拒绝机制,来满足Mesos在知道frmework资源要求的情况下来进行resource offer。

总结

Mesos的核心思想是提供2-layer调度机制,来完成在不同的framework之间进行资源共享。用以满足在同一个集群内,同时运行spark,hadoop等不同计算集群的需求。同时,通过zookeeper来保证高可用。

参考:
1http://mesos.berkeley.edu/mesos_tech_report.pdf
2http://mesos.apache.org/documentation/latest/mesos-architecture/

原文链接: http://openstack.wiaapp.com/?p=1287