作者:刘旭晖 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. LINQ简单案例

    1.在visual studio 创建一个解决方案,新建一个控制台程序Kong 2.新建两个类,分别为Master 类和Kongfu类  Master类中包含成员如下,并重写ToString方法 na ...

  2. 字符设备驱动: register_chrdev和register_chrdev_region

    概述: register_chrdev与unregister_chrdev配对使用: /*register_chrdev = __register_chrdev_region (一次性256个子设备, ...

  3. BZOJ 3713: [PA2014]Iloczyn( 枚举 )

    斐波那契数列<10^9的数很少很少...所以直接暴力枚举就行了... ------------------------------------------------------------- ...

  4. Js 30 BOM

    小知识点, 1.document.write()方法: 如果document.write()在一个事件中或window.onload=function(){}这个function里, 那么docume ...

  5. redis(二)redis+TCMALLOC高性能的缓存服务器的安装配置

    安装  1准备编译环境    yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-devel  2 下载源码包(由于goog ...

  6. java--进步学习IO

    import java.io.*; public class Demo1 { public static void main(String []args) throws Exception{ File ...

  7. WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的?

    原文:WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的? 服务端只有抛出FaultException异常才能被正常地序列化成Fault消息,并实现向客户 ...

  8. c++ 中CImage类Load函数,路径中含有空格应对策略!

    最近,在写一些东西的时候,需要用到CImage类将JPG各式的图片转换成BMP图片,传入的是图片的绝对地址:如C:\Users\Administrator\Documents\Visual Studi ...

  9. 从汇编角度来理解linux下多层函数调用堆栈执行状态

    注:在linux下开发经常使用的辅助小工具: readelf .hexdump.od.objdump.nm.telnet.nc 等,详细能够man一下. 我们用以下的C代码来研究函数调用的过程.  C ...

  10. Eclipse用法和技巧十八:减少不必要的输入

    写代码的时候,很多人都有一个原则,尽量上输入.依靠IDE自动生成的代码,一般可读性,排版什么的都还是不错的,最主要的一般不会有什么低级错误.今天介绍几个在eclipse环境中,常用的依靠eclipse ...