一. yarn的资源分配模型

无论先进先出调度器,容量调度器,还是公平调度器,他们的核心:资源分配模型是一样的。

  1. 调度器维护着多个队列的信息,用户可以向任意一个或多个队列提交job。每次NodeManager向ResourceManager发送心跳时,调度器都会选择一个队列,再在队列上选择一个应用,然后尝试在这个应用上分配资源。调度器优先选择本地资源是申请请求,其次是同机架的机器,最后是任意机器。
  2. 简言之,3种调度器就是说明如何选择一个队列,如何在队列上选择一个应用

二.单机操作系统中的任务调度

  1. 先来先服务调度
    (1)先来先服务的调度算法,维护一个后备进程/作业等待队列,该算法每次从后备作业队列中选择一个或几个作业进入内存,分配必要资源,创建的进程放入到就绪队列中
    (2)这种调度算法不利于短作业,利于长作业。长作业如果先进入到后备队列就会先被执行,使得后续到来的短作业拥有很长的等待时间

  2. 短作业优先调度算法
    (1)短作业优先调度算法也只维护一个后备作业/进程等待队列,调度器每次选择一个或多个运行时间较短的作业调入内存,分配资源。cpu进程调度时,再从就绪队列中选择一个估计运行时间最短的进程将时间片分配给它。
    (2)该算法优先调度短作业执行,当不断有短作业进入后备内存时,会使得长作业无法被调度,形成“死锁”。而且,作业的执行时间是用户对作业运行的估计值,这种估计值会被用户有意无意的放大或缩小,使得该算法不能做到真正的短作业优先调度

  3. 优先级调度算法
    (1)优先级调度算法从后被作业队列中选取优先级最高的进程调入内存,分配资源,加入就绪队列。在进程调度中,cpu从就绪队列中选择优先级最高的进程分配给其时间片
    (2)剥夺式优先级与非剥夺式优先级:当有优先级更高的进程进入就绪队列时,处理剂是否立刻被剥夺分配给高优先级的进程,还是要等待低优先级的进程处理完毕再让出处理机
    (3)静态优先级与动态优先级:进程在整个运行期间是保持不变还是根据进程占有的CPU时间长短,就需等待时间长短改变自身的优先级

  4. 高相应比优先调度
    (1)高相应比调度主要应用于作业调度
    (2)该调度算法是对先进先出和短作业优先的一种综合调度,同时考虑每个作业的等待时间和估计运行时间,从中选择响应比最高的作业投入运行
    响应必\(R_p=\frac{等待时间+要求服务时间}{要求服务时间}=1+\frac{等待时间}{要求服务时间}\)
    (3)短作业:要求服务时间越短,响应必越高
    长作业:随着等待时间的增加,响应必越高

  5. 时间片轮转调度
    (1)时间片轮转算法把就绪进程排序成一个队列,进程调度算法按照先进先出的顺序依次执行,每次执行时间是一个时间片,不论进程是否执行完毕,都会让出处理机去处理下一个进程。
    (2)时间片轮转调度中,如果时间片太大,每个进程都能在一个时间片内执行完毕,则时间片轮转算法变成了先来先服务调度。如果时间片设置的太小,则处理机需要在进程间频繁切换,使得处理机开销增大,真正用于用户进程的时间减少
    (3)时间片的设置应该综合考虑一下几个因素:
    系统响应时间,就绪队列的进程数目,系统的处理能力

  6. 多级反馈队列调度
    (1)多级反馈队列调度是优先级调度算法和时间片轮转算法的结合发展,该调度算法能动态调整进程优先级和时间片的大小,同时也不必预先估计进程的执行时间
    (2)多级反馈队列的设计思想

    • 应用设置多个就绪队列,每个就绪队列的优先级不同。一级队列的优先级最高,2级队列次之,优先级随队列标号的增大而减小
    • 下级就绪队列的时间片要比上级队列的时间片增大一倍。序号越大的队列时间片越长

    (3)多级反馈队列的进程调度方式:

    • 新进程会放到第1级就绪队列的末尾,按照先来先服务的顺序被调度执行,当该进程执行时,若在一个时间片内处理完毕,则将该进程从队列中撤除;若在1个时间片内未运行完毕,则将其放到2级队列中等待处理,若在2级队列更长的时间片内还没处理完毕,则进入3级队列
    • 仅当1级队列空时,调度程序才去调度2级队列的进程。仅当i级队列为空,采取调度i+1级队列的任务
    • 如果处理机正在执行第i级队列中的进程,有新的进程进入到1~i-1中的任何一个队列,则此时的新进程会抢占处理机,原来的进程放到第i级队列的末尾等待下一轮被调用

    (4)多级反馈队列的优势

    • 短作业优先
    • 短批处理作业的周转时间很短
    • 长批处理作业经过前面几个队列的部分执行,不会长期得不到处理

yarn的调度策略的更多相关文章

  1. Hadoop yarn任务调度策略介绍(转)

    理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源.在Yarn中,负责给应用分配资 ...

  2. Hadoop yarn任务调度策略介绍

    二.Capacity Scheduler(容器调度器)的配置 2.1 容器调度介绍 Capacity 调度器允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力.通过为每个组织分配专门的队列 ...

  3. YARN资源调度策略之Capacity Scheduler

    背景 yarn默认使用的是最简单的FIFO调度器,即一个default队列,所有用户共享,分配资源也是先到先得,没有优先级之分.有时一两个任务就把资源全占了,其他任务吃不到资源造成饥饿,显然这样的资源 ...

  4. <YaRN><Official doc><RM REST API's>

    Overview ... YARN Architecture The fundamental idea of YARN is to split up the functionalities of re ...

  5. hadoop学习之yarn资源管理

    一.yarn简介 yarn是在hadoop2.x中才引入的一个新的机制,在hadoop1.x中MapReduce任务需要同时做任务管理和资源分配,那么引入yarn之后,hadoop的资源管理的任务就全 ...

  6. 有关python numpy pandas scipy 等 能在YARN集群上 运行PySpark

    有关这个问题,似乎这个在某些时候,用python写好,且spark没有响应的算法支持, 能否能在YARN集群上 运行PySpark方式, 将python分析程序提交上去? Spark Applicat ...

  7. 深度介绍Flink在字节跳动数据流的实践

    本文是字节跳动数据平台开发套件团队在1月9日Flink Forward Asia 2021: Flink Forward 峰会上的演讲分享,将着重分享Flink在字节跳动数据流的实践. 字节跳动数据流 ...

  8. Hadoop YARN 调度器(scheduler) —— 资源调度策略

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/hadoop_yarn_resource_scheduler 搜了 ...

  9. YARN资源调度器

    YARN资源调度器 转载请注明出处:http://www.cnblogs.com/BYRans/ 概述 集群资源是非常有限的,在多用户.多任务环境下,需要有一个协调者,来保证在有限资源或业务约束下有序 ...

随机推荐

  1. spring mvc 重定向传参

    参考链接如下: http://bbs.csdn.net/topics/391034118?page=1 自己的示例程序: 详细页面提交一个修改动作,修改完成后跳转到检索页面,把检索条件重新赋值给检索页 ...

  2. JS初学之-选项卡(图片切换类)

    初学选项卡,主要问题卡在了索引值上面,花了较长的时间学习. 索引值其实很好理解,就是为每一个元素用JS的方法添加一个属性,即自定义属性. 在for循环里的函数里用i,会直接弹出这个数组的length, ...

  3. linux中进程控制

    1.进程标识 每个进程都有一个非负整型表示的唯一的进程ID.进程ID标识符总是唯一的.  虽然进程ID是唯一的,但某个ID被回收后,ID号是可以复用的. ID为0的进程通常是调度进程(其常常被称交换进 ...

  4. 数据处理项目Beta阶段软件架构建议

    class:Dataserver string serverIP string serverPassword string sqlAccount string sqlPassword bool Dat ...

  5. NOIP2016 D2T1 組合數問題(problem)

    题目描述 组合数C(n,m)表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们 ...

  6. phpwind8.7升级9.0.1过程(四)20130207升级到20141228

    每一次升级前都要注意备份 1.网站根目录的所有文件 2.网站的数据库 根据phpwind官方教程 更新到20130702版本成功并备份 更新到20140428版本成功并备份 20141228版本的更新 ...

  7. 课堂所讲整理:HTML--5JavaScript简介

    一.JavaScript简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司 ...

  8. 查找字符串的 KMP 算法

    查找字符串是我们平常编程过程中经常遇到的,现在介绍一种查找字符串算法,增加程序的执行速度. 通常我们是这么写的: /* content: search a string in a othor stri ...

  9. Java——设计模式(装饰模式_IO)

     /* * 装饰设计模式: *  对一组对象的功能进行增强时,就可以使用该模式进行问题的解决; * 装饰和继承都能实现一样的特点:  就是进行功能的扩转增强. * */ public class  ...

  10. Java之JUC系列:外部Tools

    前面写了两篇JDBC源码的文章,自己都觉得有点枯燥,先插一段JUC系列的文章来换换胃口,前面有文章大概介绍过JUC包含的东西,JUC体系包含的内容也是非常的多,不是一两句可以说清楚的,我这首先列出将会 ...