集群调度架构的变革 (二)
二级调度架构 通过隔离资源获取与任务来解决这个问题。这样任务调度逻辑可以针对特定的应用,这也可以保持在集群间共享的能力。Mesos的集群管理在这方面是先驱, 同时YARN支持一部分功能。在Mesos,资源是应用级别调度器提供的(被挑选和选中),而YARN允许应用级别调度器请求资源(在返回中得到配额)。 图1b展示了基本思想:负责负载的调度器(S0-S2)与资源管理器进行交互,资源管理器为集群资源的每个负载刻画出动态分区。这种方式可以支持定制化,针对负载的调度策略。
现在,分离了关注点的两级架构带来了一些缺点:应用级调度器丢掉了一些知识,例如,他们看不到所有可能的资源点,他们基本看不到这些与资源管理器组件提供的资源获取(Mesos)或分配(YARN)相关的选项。这有一些缺点:
- 优先级抢占(高优先级任务踢掉低优先级的)的实现变得困难了:在一个基于提供的模型里,运行任务的资源对于上一级的调度器是不可见的;在一个基于请求的模型里,低级别的资源管理器必须理解抢占策略(很可能与应用相关)。
- 调度器不能从负载运行中来考虑降级资源(例如,“吵闹的邻居”抢占了IO资源),因为他们看不到他。
- 应用级调度关心下游资源的许多不同方面,但他们只有资源管理器的提供/请求接口。这个接口很容易变得很复杂。
共享状态架构 将这个问题转化成分布式模型,多个集群状态的副本会被应用级调度器独自更新,就像图1c展示的。在本地更改后,调度器发起一个乐观更新事物去更新共享的集群状态。这个事务可能会失败,很明显:一个其他的调度器可能同一时间也在做一个冲突的变动。
最知名的使用共享状态的设计就是Google的 Omega,和微软的Apollo,还有Hashicorp的Nomad容器调度器。以上豆浆共享集群状态是现在一个单点位置:Omega的“cell state”,Apollo的“resource monitor”,Nomad的“plan queue”。Apollo与其他两个不同的是它的共享状态是只读的,调度事务直接提交给集群机器。机器自己检查冲突并选择接受或拒绝变动。这让Apollo可以在共享状态暂时不可用时进行调度。
一个“逻辑”共享状态设计可以归档同时不需要实现整个的集群状态。这种方式(类似Apollo做的),每个机器维护它们自己的状态并且将更新发送给不同的agent,如调度器,机器健康监控,资源监控系统。每个机器自己的本地状态的视图现在组成了一个全局共享状态的分片。
当然,共享状态架构也有一些缺点:他们必须与状态信息一起工作(不像中心式调度器),也会遇到高层争抢时降级调度性能(尽管其他架构也会遇到)。
本文来自微信公众号「麦芽面包,id「darkjune_think」
转载请注明。微信扫一扫关注公众号。
交流Email: zhukunrong@yeah.net
集群调度架构的变革 (二)相关推荐
- [译]集群调度架构的变革 (四)
原文地址:http://www.firmament.io/blog/... 混合架构 是最近出现的致力于通过组合单体或共享态的设计来解决全分布架构的缺点.一般这样做是ok的 - 比如,在Tarcil( ...
- 集群调度框架的架构演进过程
原文:The evolution of cluster scheduler architectures 作者:Malte Schwarzkopf 之前组会上,有幸与大家探讨 Firmament: Fa ...
- 十大主流集群调度系统大盘点
众所周知,集群调度系统是现代数据中心举足轻重的组件,一个好的调度器,能提高集群资源利用率,实现自动化部署和高可用,节约用户投资,"让开发者最大可能地把精力集中到上层业务逻辑上".考 ...
- 集群调度框架的架构演进之路
http://www.infoq.com/cn/articles/scheduler-architectures 编者按 集群架构是现代数据中心非常重要的组件,在最近几年中有长足发展.架构也从单体式设 ...
- 调度框架学习笔记(3)—— 集群调度框架的架构演进过程
本章是 The evolution of cluster scheduler architectures 文章的学习笔记.这篇文章讨论了这些年调度架构是如何发展的以及为什么会这样发展. 首先介绍一下这 ...
- k8命令,pod的启动流程与资源文件书写,k8s集群调度
目录 一.常用命令及kubect介绍 1.kubect介绍 1)语法格式: 2)命名空间的概述 3)查看命名空间 4)查看命名空间中的资源对象 2.查用排错命令 1)查询资源文件 2)查看资源详细信息 ...
- 【冬瓜哥手绘雄文】集群文件系统架构演变终极深度梳理图解
上篇文章<IO时延你被骗了多久>,竟然没有人给瓜哥发红包!很不像话!冬瓜哥起早贪黑打把势卖艺,最终却连五毛党都赶不上,所以瓜哥决定这篇文章之后休息一段时间,玩玩游戏,看看电影,睡睡大觉了. ...
- 分布式和集群的架构套路总结
本文成于2020年3月14日 参考:原文 文章目录 分布式和集群名词解释 使用分布式的心路历程 常见的分布式集群架构 1. 纯负载均衡形式(集群方向) 2. 领导选举型(分布式方向) 3. 区块链型( ...
- 快手超大规模集群调度优化实践
导读:随着公司业务的快速发展,离线计算集群规模和提交的作业量持续增长,如何支撑超大规模集群,如何满足不同场景的调度需求成为必须要解决的问题.基于以上问题,快手大数据团队基于YARN做了大量的定制和优化 ...
最新文章
- JAX-RS 方式的 RESTful Web Service 开发
- (转)虚函数和纯虚函数区别
- 生命周期结束,Spring Boot 1.x退役
- [转]微软代码示例:ASP.NET 2.0 三层架构应用程序教程系列
- java 下载 名乱码_java下载文件中文文件名乱码
- linux工作周报范文300字,工作周报范文300字
- minicom 使用方法
- 计算机专业寒假打工大一,大一学生寒假打工心得3篇
- delphi 人脸比对_比较好的开源人脸识别软件有哪些?
- 修改Android模拟器的IMEI号
- python-opencv视频转图片+图片转视频(步骤详解)(亲测有效)
- uni-app 的 tabBar 图标自制方法
- 零基础学习计算机路线,我在B站开专栏讲解了!
- DAS Over FC 技术允许 ATTO 分解存储并完成 vSAN 认证套件
- js UMD规范——AMD和CommonJS的糅合(一)
- 我和谁的天长地久(二)
- 2021年云原生技术趋势
- 如何在KWSP网站上申请在线EPF帐户(i帐户)–第1部分
- AbstractQueuedSynchronizer源码深度解析
- android 人生日历,人生日历Android版功能初体验
热门文章
- 计算机基础算法棋盘覆盖,分治算法求解棋盘覆盖问题互动教学过程.doc
- 虚拟机红帽linux登陆密码,[操作系统]vmware虚拟机安装了linux(redhat)系统忘记登录密码怎么办...
- java 之 网络编程
- 栈和堆存储在计算机RAM中,堆内存和栈内存及C++内存分配
- 两张照片重叠处半透明_全面解读超焦距,让你的风景照片更锐更清晰
- 坦克大战java_java版坦克大战游戏源码
- b丅151组成的充电器电路_BT151S-500R118
- nodejs html转excel,Node.js excel sheetjs/js-xlsx
- 2021全国大学生智能汽车竞赛中小学组国赛获奖名单
- 今晚有直播 | 全国大学生智能汽车竞赛人工智能创意赛来啦!