作者:刘旭晖 Raymond 转载请注明出处

Email:colorant at 163.com

BLOG:http://blog.csdn.net/colorant/

更多论文阅读笔记 http://blog.csdn.net/colorant/article/details/8256145

== 目标问题 ==

为了提高资源的利用率以及满足不同应用的需求,在同一集群内会部署各种不同的分布式运算框架(cluster computing framework),他们有着各自的调度逻辑。 Mesos的目标就是在不同的framework之间高效的共享硬件资源,同时简化自身的调度逻辑,使其具有尽可能大的兼容性和可扩展性,以保证在大规模集群使用环境下的鲁棒性和对各种可能的运算框架的普遍适用性。

== 核心思想 ==

Mesos本质上是一个两级的分布式资源调度框架,Mesos框架本身并不负责资源最终的具体调度,而是将这一任务交给具体的运算框架的调度逻辑来执行。不同的运算框架可以自己的调度逻辑。当然,Mesos还是需要负责将可用资源提交给各个调度框架供他们调度,所以严格的来说,也是承担了预调度的任务。

要使用Mesos管理资源调度,具体的运算框架需要将自己的调度逻辑注册到Mesos的master节点上,另外还需要将具体执行任务的逻辑注册到每一个Mesos的Slave节点上。

每个Mesos Slave节点将本节点上的可用资源报告给Master节点,Master节点再将可用资源按一定的逻辑(如公平调度,优先级调度等)提供给各个具体的运算框架的调度进程。具体的调度进程在决定将这些资源部分或全部分配给特定的任务,同时把所分配的任务-资源关系列表返回给master节点,master节点进而将这些任务提交给对应的slave节点执行。

== 实现 ==

为了保证Master节点的可用性,Mesos使用zookeeper维护多个备用Master节点。同时Master节点仅维护最简单的必需的状态如活跃的Slave节点,注册的运算框架和运行中的任务等,当前主节点失效后,Slave和Scheduler将连接新的主节点并恢复这些状态。

master节点上的资源预调度逻辑也是模块化的,可以按需实现不同的策略。

不同的运算框架对所需的资源必然会有一定的偏好和要求,为了减轻Master节点的负担,具体的调度逻辑并不向Master节点注册预分配算法,如果Master节点提供给他们的资源不满足需求的话,具体的调度进程只是简单的拒绝这些资源。不过,为了提高效率,具体的调度进程还是可以注册类似白名单列表之类的Filter供Master节点预先筛除不满足要求的资源。

分配给任务特定资源和该任务实际使用的资源是两回事,如果不能有效的限制任务实际使用的资源,那么资源调度的意义大概会打折扣。Mesos在Linux环境下使用Linux container来限制任务所能使用的硬件资源。

== 相关研究,项目等 ==

YARN :做为Hadoop2.0使用的调度框架,同样采用两级的调度逻辑,解决类似的问题。

== 其它 ==

分布式调度系统的一个问题在于缺乏集中式的全局规划,可能导致各种非最优调度的情况。比如当规模大小不同的Job混合运行的时候,可能小Job的资源需求能够迅速得到满足而不断的得到执行,而大Job的资源很难得到满足而无法执行等。具体的就需要有各种对应的策略来解决这些问题(如在每个节点上设定最小保留资源等等)

总体而言,Mesos最适用于Job的任务持续时间短,资源需求可以灵活伸缩的运算框架,如MapReduce等,对于需要长时间占用大量资源类型的Job,其非全局式的资源调度可能较难实现近似最优的调度。Google的Omega调度框架则试图同时解决这些问题。

论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center的更多相关文章

  1. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  2. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

  3. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  4. [置顶] 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)

    这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...

  5. Nature/Science 论文阅读笔记

    Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...

  6. 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification

    Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...

  7. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

  8. [论文阅读笔记] GEMSEC,Graph Embedding with Self Clustering

    [论文阅读笔记] GEMSEC: Graph Embedding with Self Clustering 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 已经有一些工作在使用学习 ...

  9. [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks

    [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks 本文结构 解决问题 主要贡献 算法 ...

随机推荐

  1. linux下安装greenplum

    1. 下载 Greenplum Database 源代码 $ git clone https://github.com/greenplum-db/gpdb 2. 安装依赖库 Greenplum Dat ...

  2. javascript面向对象创建高级 Web 应用程序

       目录 JavaScript 对象是词典 JavaScript 函数是最棒的 构造函数而不是类 原型 静态属性和方法 闭包 模拟私有属性 从类继承 模拟命名空间 应当这样编写 JavaScript ...

  3. Google Code Jam Round 1A 2015 Problem B. Haircut 二分

    Problem You are waiting in a long line to get a haircut at a trendy barber shop. The shop has B barb ...

  4. HDU 1025 DP + 二分

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1025 求最长递增子序列,O(n^2)的复杂度超时,需要优化为O(n*logn) f[i]存储长度为i的最小 ...

  5. Debian为程序添加一个开始菜单,debian添加sublime开始菜单.

    下了一个 '绿色' 的程序,想要加到开始菜单里面. 怎么做呢? 我这里以sublime2做例 去http://www.sublimetext.com/2 下载了linux 64位, 解压放到了下面的文 ...

  6. android armeabi与armeabi-v7a

    我在armeabi下增加了百度的库: libBaiduMapSDK_v2_4_1.so 可是却报错说找不到库.我发如今libs下还有另外一个目录: armeabi-v7a 然后我把libBaiduMa ...

  7. jquery分页

    //分页插件 /** 2015-12-7 **/ (function($){ var ms = { init:function(obj,args){ return (function(){ ms.fi ...

  8. ant 关键字和关键语句

    学习ant推荐的两个blog http://www.cnblogs.com/huozhicheng/archive/2010/04/08/2533199.htmlhttp://www.cnblogs. ...

  9. 关于QT的系统总结(非常全面,非常好)

    源地址:http://www.cnblogs.com/wangqiguo/p/4625611.html 阅读目录 编译环境与开发流程 QT项目的构成及原理 QT中的布局 QT中的通用控件 QVaria ...

  10. CSS简介和CSS选择器

    <pre name="code" class="html">Css 简洁 css 选择器 标签选择器 类选择器 ID选择器 Css 层叠样式表 Ca ...