一. 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. 资源预加载 Preload

    当提到前端性能优化时,我们首先会联想到文件的合并.压缩,文件缓存和开启服务器端的 gzip 压缩等,这使得页面加载更快,用户可以尽快使用我们的 Web 应用来达到他们的目标. 资源预加载 是另一个性能 ...

  2. 监听turtlesim仿真器,发送数据到实际的机器人--20

    摘要: 原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 1.0.本教程教你写实际的ros程序,控制自己的机器人.采用的是PC端的ubuntu+ros.终 ...

  3. POI读取excel

    HSSF是Horrible Spread Sheet Format的缩写 读取2007版本前 XSSF是XML Spread Sheet Format的缩写 读取2007版本后(包含2007)

  4. 怎么用ABBYY创建属于自己的PDF

    怎么创建一份属于自己的PDF文档呢?由于PDF格式文件具有跨平台.支持超长文件.安全可靠性高等诸多优势,在日常办公学习中应用越来越广泛.而随着技术的发展,各种办公软件也对PDF提供越来越多的支持,但P ...

  5. 配置 Hdp 4 Window 中的一些问题

    1,E0508: User [?] not authorized for WF job [-- jobid] 很明显验证问题, 修改 oozie-site.xml中节点为 <property&g ...

  6. 【转】弹出可拖动的DIV层提示窗口

    来源:www.divcss5.com <html> <head> <meta http-equiv="Content-Type" content=&q ...

  7. OpenJudge计算概论-单词替换

    /*====================================================================== 单词替换 总时间限制: 1000ms 内存限制: 65 ...

  8. Exploring the Angular 1.5 .component() method

    Angular 1.5 introduced the .component() helper method, which is much simpler than the.directive() de ...

  9. CSS3之Flexbox布局

    CSS3为我们提供了一种可伸缩的灵活的web页面布局方式-flexbox布局,它具有很强大的功能,可以很轻松实现很多复杂布局,在它出现之前,我们经常使用的布局方式是浮动或者固定宽度+百分比来进行布局, ...

  10. 【转载】springMVC表单校验+全注解

    在这篇文章中,我们将学习如何使用Spring表单标签, 表单验证使用 JSR303 的验证注解,hibernate-validators,提供了使用MessageSource和访问静态资源(如CSS, ...