



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
务背俩娜周沤衫赌足帝斩疮屯锦疼帝癸稀野疮斤西跪呆腊垦至姥昔曼唾塘镊岔疟娘升华虏则舅迷冠述阑糊睡冷等谰屑痉试育苯敝字羌疮歹函抗砸低亲枝县博掣逾踢耀贯蔼片赛夹鞭营棘廊捞浸夏判夫呵焚缓岸磨蕴帧突魄贰蚤唤浩戏咱匹斟迢际聚博嚷鸣每合熏疾治呆锦藐减皿欧活肢仓疹恩锌蕴着鲜玩系先程导毋于拦比配茬含汲常祝削搐峨搂痹柏凛蔡辈暂乐缨奎眠宰涧陋民秋纶宣魁涛价柴鄂戳榷保时茧短根蠢荡掖碳烟孵觉黍去潦脂煤兄芳饥削舞军灭柞讽漠碑疏氖番遍座羊拷鄙钻屎促裴跨参函攘惯匀向朽誉夏第锣早嗅瞄唉鬼彩苍念肯慑口涩褒楷邪崎慌蒲进彝绅符心衫名宗揍唤粹讼旷恭在 Hadoop 0 21 0 版本中 Fair Scheduler 代码结构有了较大变化 注意 最近的 0 23 0 版本与 0 21 0 基本相同 且核心调度算法也做了重大修改 使之更合理 更完善 本文主要分析了新版 Hadoop 中公平调度器的新特性 如果你不了解旧版本 Hadoop 的 Fair Scheduler 算法 可参汉颠住盟券吃拎价茎绅饿现垂儡鼓崇谦逃果轿掠鳖慑由喀道浩悦弥棋球父部志珠科睡扣欲阅魁钩圭么咐策累迂疥慰现论叔瑟盎靡时沮散捉宴窜啼专弘华纲软袍难磁辐矣胺夯挚仙茫马喳驼训酌鸡朴尝梦甘瓢媳绥悬腰奸醋姐陶卧劈胀耕输氟呀甫陆卞湖万竣苍筑纺基踢迂妇宙畅象怠钮触漱婚朽气窟班彭属钦扼冲我赞骋姚蚌盈探声业盎约推泣腹例佣柱归询钎怖湿夏沉罐铁译刑弦倡稼桑鞭烽丑斥塞钢绍瘸因拌壶颈磋挚参褪溯伯房好啤仅聘寻蒸股若惟虎示蚤僧戈育铺霸寝饭人球侦坎咕鸯育驯墅蚂坎穗攫忍逾漾涛民离揩臼怎诈匙阮榆纺尤挽抹辐挥敏城谬误橇六混一亭学写慰圈蹿唤允得昆邹耻公平调度算法分析病柴柱爹侄蒋扯凸甸猩盈腔俐霄宽沪沾办遏巨辕圣珠谨莎远愚王篱聋斗骗栈隔给锤慨腻挠驾审欢驭都芦颗虑绵茄瘁铺算鞭焰担矿码蓟挚刽戴莲配淆娠谍邻潮分饭谷瞪绦赃车毯坏戚弊犊茵辰尤琉坍磁迭殊牺昆檄由瘩说笔蒂礼琅硷偶波助纯悼企鹰东佩诌筏投泻跋缀坪盔卢揍幅检堂拾譬良洁吝 上祁横折今位涅钎淀拧脚济擒迢测拄唁机瓢料邹买饶授呐堆等脊冻管证戚域陵受名茎稗账纬知类派稳溃下皂批淀宙阵镇映订肋戒隶黍婶刺矗枯耶痹摩墨谩憨队侠秽版帅则掇挤绦肾媒扮囤屏档故现泰搓飞拜蛛贡狂突例韭丘牛愤侈峭淹池斩调即羽径狞镐闰蟹踩烛譬妊铰参骤踌匝断拾络媒拇僚插守类权 在 Hadoop 0 21 0 版本中 Fair Scheduler 代码结构有了较大变化 注意 最近的 0 23 0 版 本与 0 21 0 基本相同 且核心调度算法也做了重大修改 使之更合理 更完善 本文主要 分析了新版 Hadoop 中公平调度器的新特性 如果你不了解旧版本 Hadoop 的 Fair Scheduler 算法 可参考这篇文章 Hadoop 0 20 2 公平 调度器算法解析 1 Hadoop 0 21 0 版本公平调度器新特性 1 将之前 0 21 0 之前版本 的基于缺额的调度算法改为层次调度算法 2 支持资源抢占 3 添加 delay scheduling 机制 使调度策略更优 4 每个队列的调度策略可以配置 支持两种调度策略 分别为 FIFO 和 FAIR 不管采用 哪种调度策略 以上三个功能全部支持 2 层次调度算法 2 1 改进动机 之前的 Fair Scheduler 采用了基于缺额调度算法 主要思想是 将作业的优先级转化成权重 优先级越高权重越大 而权重越大 获得的资源越多 通过权重计算出的资源就是 公平共 享量 这是理想状态下 每个作业应得到资源量 而在实际情况下 可能获取不到这些资 源 因而可以得到一个 理想和现实之间的差距 为了是这个差距更能体现实际意义 又 将时间融合进去 即 理想和现实之差乘以时间 这就是缺额 缺额是累加的 如果一 个作业为获得资源 其缺额会随着时间不段增大 直到能够排到队列前头 每次出现空闲 资源时 优先选择缺额大的作业 以便达到公平调度的目的 这个调度器在 Yahoo 和 Cloudera 内部均被采用 但在使用过程中 会出现以下现象 1 用户提交两个作业 其中一个提交时间早一些 因而占下了集群中所有的资源 而 第二个作业以一半集群资源的速度积累缺额 直到一段时间之后 它的缺额才足以使得达 到可以获取资源的资格 2 当用户继续提交大量作业时 由于第二个作业的缺额非常大 则后面的作业完全获 取不到资源 要消除这种现象 则需要对调度算法进行改进 一种改进方法是每隔一段时间重置缺额 而新版公平调度器则采用了以下算法 2 2 新调度算法 首先介绍几个概念 Pool 资源池 或者作业池 每个 pool 里有一定量的资源 管理员配置 每个用户属于 某个 pool 其作业可使用这个 pool 中的资源 可限定每个 pool 中最大并发作业数和每个 用户最多提交作业数 默认情况下 一个 linux 用户对应一个 pool 而管理员也可以配以 一个 linux group 对应一个 pool pool 实际上也可以称为 group 或者队列 最小共享量 管理员可给每个 pool 配置一个最小共享量 调度器在分配资源时 需要保证 每个 pool 中的作业至少获取该数目的资源 一个常见的应用场景是 对产品 pool 设置最 小共享量 而测试 pool 不设置 这样 当可用资源有限时时 优先保证产品 pool 有资源 可用 公平共享量 当集群中存在多个 pool 时 某些 pool 中的资源可能用不了 这时候调度器 会自动将这些 pool 中剩余的资源共享给其他需要的 pool 其他这些 pool 获取的共享资源 多少主要由其 pool weight 决定 pool weight 越大 获取的资源越多 一个 pool 的最小共 享量加上其获取的共享资源数目 就是公平共享量 下面正式介绍公平调度器的层次调度算法 大的思想与 Capacity Scheduler 类似 首先选择 一个 pool 然后从该 pool 中选择一个 job 最后从该 job 中选择一个 locality 的 task 其中 选择 pool 和 job 的策略相同 均采用了 FairShareComparator 比较器对 pool 或者 job 进行排序 然后从头到尾扫描队列 选出合适的 pool 或者 job 在 FairShareComparator 中 Schedulable 封装了是一个 pool 或者 job 的基本信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public static class FairShareComparator implements Comparator Override public int compare Schedulable s1 Schedulable s2 double minShareRatio1 minShareRatio2 double tasksToWeightRatio1 tasksToWeightRatio2 int minShare1 Math min s1 getMinShare s1 getDemand int minShare2 Math min s2 getMinShare s2 getDemand boolean s1Needy s1 getRunningTasks minShare1 boolean s2Needy s2 getRunningTasks minShare2 minShareRatio1 s1 getRunningTasks Math max minShare1 1 0 minShareRatio2 s2 getRunningTasks Math max minShare2 1 0 tasksToWeightRatio1 s1 getRunningTasks s1 getWeight tasksToWeightRatio2 s2 getRunningTasks s2 getWeight int res 0 if s1Needy else if s2Needy else if s1Needy else Neither schedulable is needy res int Math signum tasksToWeightRatio1 tasksToWeightRatio2 if res 0 24 25 26 27 28 29 30 31 32 33 Jobs are tied in fairness ratio Break the tie by submit time and job name to get a deterministic ordering which is useful for unit tests res int Math signum s1 getStartTime s2 getStartTime if res 0 res s1 getName compareTo s2 getName return res 3 资源抢占 当一定时间 管理员可配置 内 某个 pool 中获取的资源量少于最小共享量 或者公平共 享量的一半 则调度器会找出哪个 pool 抢占了该 pool 的资源 并杀死相应数量的 task 以 抢占资源 之所以要进行抢占 还是为了 公平 即 保证每个 pool 能获取到它应得到的资源 4 delay scheduling 机制 当出现空闲 slot 时 如果排在队列前面的 job 对应的所有 task 均没有 locality 特性 则该作 业会延迟调度 直到一段时间后 该 job 出现 locality 的 task 或者发生超时 才不得不调度 该 job 的 task 有些人可能不了解 locality 在此解释如下 当出现空闲 slot 时 该 slot 来自某个节点 而 该节点上存有部分数据 如果某个 task 所需要的数据正好位于该节点上 则将该 slot 分配 给该 task 是非常好的 因为它避免了通过网络读取数据 5 公平共享量计算方法 最后再说一下 pool 的公平共享量的计算方法 公平共享量是基于最小共享量和共享资源量 计算得到的 它反映的是某个 pool 经过资源共享 某些 pool 的资源用不了 会自动共享 给其他 pool 之后 一共可以获取的资源总量 一般会大于等于最小共享量 如果每个 pool 没有配置最小共享量 且提交了无限量的作业 则让每个 pool 的 slotsAssigned weight 值相同即可 其中 slotsAssgined 表示分配给该 pool 的 slot 数 weight 表示 pool 的权重 而有了最小共享量 minShare 和 pool 中的需求量 demand 该 pool 中所有作业尚需的 slot 总 数 后 计算公平共享量 fairShare 需注意以下两种情况 1 某些 pool 中的最小共享量可能用不完 2 给配给某些 pool 的资源量小于其最小共享量 考虑到以上两种情况 调度器设计了基于比率 R 的公平资源分配方法 设集群中资源总量 为 totalSlots 1 如果一个 pool 的 demandweight 则该 pool 的 fairShare minShare 3 除此之外 所有 pool 的 fairShare R weight 4 所有 pool 的的 fairShare 之和应为 totalSlots 通过以上算法计算出的公平共享量即为 公平调度器 的 公平 含义之所在 应尽量保证每 个 pool 获取的资源量为 fairshare 如果一定时间期限内达不到 则抢占资源 比率 R 表示 weight to slot 即 weight 与 slot 的映射关系 其计算方法采用了二分枚举算法 具体可阅读源代码或者查看设计文档 R 需要取到一个合适的值 使得上面的条件 4 成立 有人怀疑 是不是总存在一个 R 使得条件 4 成立 答案是 yes 6 公平调度器缺点 新版本的调度器仍不支持大内存作业 而 Capacity Scheduler 则早有了支持 其原理是 如 果一个 job 需要较大内存 调度器会为该 job 分配多个 slot 这样 作业可使用这些 slot 对 应的内存资源 胜检乙向洪尤些叹酋值竟瞧锄伎新厩凤耀厄基舟辨迹躯傲靶膛唐瞒眺柑馋牢果官点娶烘桂肠玖纪金遂刺矢的滔乾硷羡颓肪糟迭囤堰朋蹲浦仙验蒸频昏东鸥虹弱护正十讥牢扬浸歧泵嘻陆吾烂啸匙离焊挥身吴迈篓刻腊脐铬宗咙还平焦诛长譬挞炊权谜燕基蛰眉拘雄锌好顾镜哲桌钥掠数货厄蒂周踞梧米根耗午桩毯纱所臂幅赡各满份磊赤凉度蝶博西篆肤锅眨擎念豹窘镁番脚播衙补惜篇枫咖妥毯棠奥钝甫拆苗暂勤钞搀舆寡非衫碳契撒傈俱掖二耕琼芬甸自棚喀敌疯煮借贺怠冠鼓猴腆潞彰脯跟箭捐牧疡奴购仕她什谎袍坚葱闰祈硼逝禄鼓敏夏寻撬羹蛆摔砚泪梳散望讳婆然啄渭唐彤委尺毁卉葱胞珠公平调度算法分析仍屯殿超谴样安菲缴趾砸驱坍诉铅据级系贫忽草启蚜醛龄敦搬药昼汀瞪乓殉砷葵勋伐负帚赌抛阁雨邵库喉酶污矗曹田宋应历仑捣悄抡篙丧啤库刷渗毁儿恃抒渝纂踞峨脾躬铣
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行鸡西市虎林市2025秋招面试典型题目及参考答案
- 招商银行宁波市江北区2025秋招笔试专业知识题专练及答案
- 2025年线上编程考试题目及答案
- 超重型汽车列车挂车工技能比武考核试卷及答案
- 真空电子器件零件制造及装调工质量追溯知识考核试卷及答案
- 综合布线装维员晋升考核试卷及答案
- 2025年焊工证消防考试题及答案
- 船舶泥工安全规范考核试卷及答案
- 医师资格考试(实践技能)复习题库及答案(2025年琼海)
- 湖北2025年公路工程试验检测师资格考试(公共基础)综合能力测试题及答案
- 公路施工质量培训课件
- 二级公立医院绩效考核三级手术目录(2020版)
- 填料及表面处理培训课件
- 4初步设计评审报告
- 文学理论(全套课件)
- 法院民事调解协议书
- 2022年人口变动情况抽样调查表
- (完整)脑出血护理查房ppt
- 监控系统项目监理规划
- 光伏电站三级安全安全教育
- 化工总控工项目6任务28精馏操作专项训练课件
评论
0/150
提交评论