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/ 概述 集群资源是非常有限的,在多用户.多任务环境下,需要有一个协调者,来保证在有限资源或业务约束下有序 ...
随机推荐
- c#部分---网吧充值系统;简易的闹钟;出租车计费;简单计算器;对战游戏;等额本金法计算贷款还款利息等;随机生成10个不重复的50以内的整数;推箱子;
网吧充值系统namespace ConsoleApplication1 { class Program { struct huiyuan { public string name; public st ...
- 控制文本和外观------CSS Binding(CSS类名绑定)
<style> .myColor{color:red;font-size:13px} .yourColor{color:green;font-size:34px}</style> ...
- springMvc源码学习之:spirngMvc的拦截器使用
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...
- 【转】详解使用tcpdump、wireshark对Android应用程序进行抓包并分析
原文网址:http://blog.csdn.net/gebitan505/article/details/19044857 本文主要介绍如何使用tcpdump和wireshark对Android应用程 ...
- supervisor运行golang守护进程
最近在鼓捣golang守护进程的实现,无意发现了supervisor这个有意思的东西.supervisor是一个unix的系统进程管理软件,可以用它来管理apache.nginx等服务,若服务挂了可以 ...
- JSBinding + SharpKit / Coroutine支持
首先得深入了解协程的原理.如果还没有完全理解,建议看这篇: http://wiki.unity3d.com/index.php/CoroutineScheduler 另外还要对 JavaScript ...
- AWR分析。(shared_pool,sga_size大小设置)
Execute to Parse 指标反映了执行解析比 其公式为 1-(parse/execute) , 目标为100% 及接近于只 执行而不解析 在oracle中解析往往是执行的先提工作,但是通过游 ...
- 用视频编辑软件打不开jpg格式的图片的解决方法
有时候我们把PSD.JPG等图片导入到素材库中会发现EDIUS视频编辑软件根本就不支持,显示黑屏状态.可是当我们把图片导入EDIUS NX支持下的premierepro里却能够正常显示.这是什么原因呢 ...
- HtmlAgilityPack
http://htmlagilitypack.codeplex.com/wikipage?title=Examples http://nuget.org/packages/HtmlAgilityPac ...
- 关于malloc申请的动态内存的问题
http://bbs.bccn.net/thread-331344-1-1.html #include<stdio.h>#include<stdlib.h>int main(v ...