yarn的调度策略
一. yarn的资源分配模型
无论先进先出调度器,容量调度器,还是公平调度器,他们的核心:资源分配模型是一样的。
- 调度器维护着多个队列的信息,用户可以向任意一个或多个队列提交job。每次NodeManager向ResourceManager发送心跳时,调度器都会选择一个队列,再在队列上选择一个应用,然后尝试在这个应用上分配资源。调度器优先选择本地资源是申请请求,其次是同机架的机器,最后是任意机器。
- 简言之,3种调度器就是说明如何选择一个队列,如何在队列上选择一个应用
二.单机操作系统中的任务调度
先来先服务调度
(1)先来先服务的调度算法,维护一个后备进程/作业等待队列,该算法每次从后备作业队列中选择一个或几个作业进入内存,分配必要资源,创建的进程放入到就绪队列中
(2)这种调度算法不利于短作业,利于长作业。长作业如果先进入到后备队列就会先被执行,使得后续到来的短作业拥有很长的等待时间短作业优先调度算法
(1)短作业优先调度算法也只维护一个后备作业/进程等待队列,调度器每次选择一个或多个运行时间较短的作业调入内存,分配资源。cpu进程调度时,再从就绪队列中选择一个估计运行时间最短的进程将时间片分配给它。
(2)该算法优先调度短作业执行,当不断有短作业进入后备内存时,会使得长作业无法被调度,形成“死锁”。而且,作业的执行时间是用户对作业运行的估计值,这种估计值会被用户有意无意的放大或缩小,使得该算法不能做到真正的短作业优先调度优先级调度算法
(1)优先级调度算法从后被作业队列中选取优先级最高的进程调入内存,分配资源,加入就绪队列。在进程调度中,cpu从就绪队列中选择优先级最高的进程分配给其时间片
(2)剥夺式优先级与非剥夺式优先级:当有优先级更高的进程进入就绪队列时,处理剂是否立刻被剥夺分配给高优先级的进程,还是要等待低优先级的进程处理完毕再让出处理机
(3)静态优先级与动态优先级:进程在整个运行期间是保持不变还是根据进程占有的CPU时间长短,就需等待时间长短改变自身的优先级高相应比优先调度
(1)高相应比调度主要应用于作业调度
(2)该调度算法是对先进先出和短作业优先的一种综合调度,同时考虑每个作业的等待时间和估计运行时间,从中选择响应比最高的作业投入运行
响应必\(R_p=\frac{等待时间+要求服务时间}{要求服务时间}=1+\frac{等待时间}{要求服务时间}\)
(3)短作业:要求服务时间越短,响应必越高
长作业:随着等待时间的增加,响应必越高时间片轮转调度
(1)时间片轮转算法把就绪进程排序成一个队列,进程调度算法按照先进先出的顺序依次执行,每次执行时间是一个时间片,不论进程是否执行完毕,都会让出处理机去处理下一个进程。
(2)时间片轮转调度中,如果时间片太大,每个进程都能在一个时间片内执行完毕,则时间片轮转算法变成了先来先服务调度。如果时间片设置的太小,则处理机需要在进程间频繁切换,使得处理机开销增大,真正用于用户进程的时间减少
(3)时间片的设置应该综合考虑一下几个因素:
系统响应时间,就绪队列的进程数目,系统的处理能力- 多级反馈队列调度
(1)多级反馈队列调度是优先级调度算法和时间片轮转算法的结合发展,该调度算法能动态调整进程优先级和时间片的大小,同时也不必预先估计进程的执行时间
(2)多级反馈队列的设计思想- 应用设置多个就绪队列,每个就绪队列的优先级不同。一级队列的优先级最高,2级队列次之,优先级随队列标号的增大而减小
- 下级就绪队列的时间片要比上级队列的时间片增大一倍。序号越大的队列时间片越长
(3)多级反馈队列的进程调度方式:
- 新进程会放到第1级就绪队列的末尾,按照先来先服务的顺序被调度执行,当该进程执行时,若在一个时间片内处理完毕,则将该进程从队列中撤除;若在1个时间片内未运行完毕,则将其放到2级队列中等待处理,若在2级队列更长的时间片内还没处理完毕,则进入3级队列
- 仅当1级队列空时,调度程序才去调度2级队列的进程。仅当i级队列为空,采取调度i+1级队列的任务
- 如果处理机正在执行第i级队列中的进程,有新的进程进入到1~i-1中的任何一个队列,则此时的新进程会抢占处理机,原来的进程放到第i级队列的末尾等待下一轮被调用
(4)多级反馈队列的优势
- 短作业优先
- 短批处理作业的周转时间很短
- 长批处理作业经过前面几个队列的部分执行,不会长期得不到处理
yarn的调度策略的更多相关文章
- Hadoop yarn任务调度策略介绍(转)
理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源.在Yarn中,负责给应用分配资 ...
- Hadoop yarn任务调度策略介绍
二.Capacity Scheduler(容器调度器)的配置 2.1 容器调度介绍 Capacity 调度器允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力.通过为每个组织分配专门的队列 ...
- YARN资源调度策略之Capacity Scheduler
背景 yarn默认使用的是最简单的FIFO调度器,即一个default队列,所有用户共享,分配资源也是先到先得,没有优先级之分.有时一两个任务就把资源全占了,其他任务吃不到资源造成饥饿,显然这样的资源 ...
- <YaRN><Official doc><RM REST API's>
Overview ... YARN Architecture The fundamental idea of YARN is to split up the functionalities of re ...
- hadoop学习之yarn资源管理
一.yarn简介 yarn是在hadoop2.x中才引入的一个新的机制,在hadoop1.x中MapReduce任务需要同时做任务管理和资源分配,那么引入yarn之后,hadoop的资源管理的任务就全 ...
- 有关python numpy pandas scipy 等 能在YARN集群上 运行PySpark
有关这个问题,似乎这个在某些时候,用python写好,且spark没有响应的算法支持, 能否能在YARN集群上 运行PySpark方式, 将python分析程序提交上去? Spark Applicat ...
- 深度介绍Flink在字节跳动数据流的实践
本文是字节跳动数据平台开发套件团队在1月9日Flink Forward Asia 2021: Flink Forward 峰会上的演讲分享,将着重分享Flink在字节跳动数据流的实践. 字节跳动数据流 ...
- Hadoop YARN 调度器(scheduler) —— 资源调度策略
本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/hadoop_yarn_resource_scheduler 搜了 ...
- YARN资源调度器
YARN资源调度器 转载请注明出处:http://www.cnblogs.com/BYRans/ 概述 集群资源是非常有限的,在多用户.多任务环境下,需要有一个协调者,来保证在有限资源或业务约束下有序 ...
随机推荐
- HTML ---滚动条样式代码及<marquee>标签的用法;
html中滚动条属性设置 scrollbar属性.样式详解 1.overflow内容溢出时的设置(设定被设定对象是否显示滚动条) overflow-x水平方向内容溢出时的设置 overfl ...
- MongoDB副本集搭建及备份恢复
一.MongoDB副本集(repl set)介绍 早起版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主: 目前已经淘汰了ma ...
- JAVA常用运算符
Java 语言中常用的运算符可分为如下几种: 1.算术运算符 int i = 5; int j = i++; // i = 6 j = 5 int j = ++i; // i = 6 j = 6 PS ...
- 微信JS-SDK应用DEMO
首先需要将以下函数写入TinkPHP的公用function.php文件中以便调用 // 基于ThinkPHP /** * php curl 请求链接 * 当$post_data为空时使用GET方式发送 ...
- Visual Studio 2012 update3 安装后的问题及解决
安装之后可能遇到的问题: 安装完时,打开Help Viewer时,出现了一个错误提示:”a content file required by the help viewer is missing or ...
- spring源码学习之:xml配置文件标签自定义
Spring框架从2.0版本开始,提供了基于Schema风格的XML扩展机制,允许开发者扩展最基本的spring配置文件(一 般是classpath下的spring.xml).试想一下,如果我们直接在 ...
- Fragment用app包还是v4包解析
转自:http://blog.csdn.net/zc0908/article/details/50721553 1)问题简述 相信很多的朋友在调用Fragment都会遇到下面的情况: 这个时候问题来了 ...
- 论文笔记之:Learning to Track: Online Multi-Object Tracking by Decision Making
Learning to Track: Online Multi-Object Tracking by Decision Making ICCV 2015 本文主要是研究多目标跟踪,而 online ...
- javascript零散要点收集
1.this永远指向函数对象的所有者 2.ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值.对象或函数”.严格来说,这意味着对象是无特定顺序的值的数组. 3.pr ...
- CSS和JS实现单行、多行文本溢出显示省略号(该js方法有问题不对)
如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现方法: overflow: hidden; te ...