立即注册 登录
About云-梭伦科技 返回首页

yuwenge的个人空间 https://www.aboutyun.com/?20 [收藏] [复制] [分享] [RSS]

日志

Apache Mesos入门,它是什么?

已有 2203 次阅读2015-6-10 16:49

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是如何充当内核的角色的。图中的,Marathon类似Linux主机内的init Systemd等外壳管理的功能。
提出Mesos论文中的摘要

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

Mesos的目标场景

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

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的示例

  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来保证高可用。

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


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条