【大数据之Hadoop】二十二、Yarn调度器和调度算法

news2024/11/25 2:33:22

Hadoop作业调度器主要有三种:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)。
Apache Hadoop默认的资源调度器:容量调度器Capacity Scheduler。
CDH框架默认调度器是Fair Scheduler。

1 FIFO

单队列,先来先服务。
优点:简单易懂;
缺点:不支持多队列,生产环境很少使用。

2 容量调度器

Capacity Scheduler是Yahoo开发的多用户调度器。
在这里插入图片描述
特点:
(1)多队列:每个队列配置一定资源,队列中采用FIFO调度策略。

(2)容量保证:可以给每个队列设置资源使用的下限和上限。

(3)灵活性:某一队列的剩余资源可以暂时共享给需要资源的队列,当该队列由新的应用程序提交时,则别的队列归还借调的的资源。

(4)多租户:支持多用户共享集群和多应用程序同时运行。(防止统一用户独占队列资源,调度器会限定同一用户提交的专业所占资源)

容量调度器资源分配算法
在这里插入图片描述
(1)队列资源分配:从root开始深度遍历,有选择资源占用率最低的队列进行分配。

(2)作业资源分配:按作业优先级和提交时间分配。

(3)容器资源分配:按容器优先级分配,优先级相同,按照数据本地性原则:
    (i)任务和数据在同一节点;
    (ii)任务和数据在同一机架;
    (iii)任务和数据不在同一节点和同一机架。

3 公平调度器

同队列所有任务共享资源,在时间尺度上获得公平的资源。
在这里插入图片描述
(1)公平调度器与容量调度器相同点
    (i)多队列:每个队列配置一定资源,队列中采用FIFO调度策略。

    (ii)容量保证:可以给每个队列设置资源使用的下限和上限。

    (iii)灵活性:某一队列的剩余资源可以暂时共享给需要资源的队列,当该队列由新的应用程序提交时,则别的队列归还借调的的资源。

    (iv)多租户:支持多用户共享集群和多应用程序同时运行。(防止统一用户独占队列资源,调度器会限定同一用户提交的专业所占资源)

(2)公平调度器与容量调度器不相同点
    (i)调度策略不同
        容量调度器:优先选择资源利用率低的队列。
        公平调度器:优先选择对资源缺额比例大的队列。

    (ii)每个队列单独设置资源分配方式:
        容量调度器:FIFO、DRF
        公平调度器:FIFO、FAIR、DRF

缺额:公平调度器设置在时间尺度上作业获得公平的资源。但某一时刻作业应获资源和实际获取资源的差叫缺额。(因为作业刚进入不能马上获得资源的均分)

公平调度队列资源分配方式
(1)FIFO:公平调度器使用FIFO则变为容量调度器。

(2)FAIR:每一步都按照公平策略分配资源。

    具体资源分配流程:

    (I)选择队列:从root开始深度遍历,有选择资源占用率最低的队列进行分配。

    (II)选择作业:按作业优先级和提交时间分配。

    (III)选择容器:按容器优先级分配,优先级相同,按照数据本地性原则
        (i)任务和数据在同一节点;
        (ii)任务和数据在同一机架;
        (iii)任务和数据不在同一节点和同一机架。
在这里插入图片描述
实际最小资源份额:minShare=Min(资源需求量,配置的最小资源)

是否饥饿:isNeedy=资源使用量<minShare

资源分配比:minShareRatio=资源使用量/Max(minShare,1)

资源使用权重比:useToWeightRatio=资源使用量/权重

例子:
在这里插入图片描述
(I)队列资源分配
  需求:资源总量为100,三个队列对资源的需求分别为20、50、30。
    第一次:100/3=33.33
        queueA:分33.33->多13.33
        queueB:分33.33->少16.67
        queueC:分33.33->多3.33

    第二次:(13.33+3.33)/1=16.66
        queueA:分20
        queueB:分33.33+16.66=50
        queueC:分30

(II)作业资源分配
(a)不加权(关注job个数)(计算时:资源个数/资源需求)
  需求:一个队列有12个资源,4个job,需求分别是1、2、6、5。
    第一次:12/4=3
        job1:分3个->多2个
        job2:分3个->多1个
        job3:分3个->少3个
        job4:分3个->少2个

    第二次:(2+1)/2=1.5
        job1:分1个
        job2:分2个
        job3:分3个->少3个->分1.5个->共分4.5个
        job4:分3个->少2个->分1.5个->共分4.5个

    第n次算:直到没有空闲资源。

(b)加权(关注job权重)(计算时:资源个数/权重)
  需求:一个队列有16个资源,4个job,需求分别:4、2、10、4;权重分别为:5、8、1、2。
    第一次:16/(5+8+1+2)=1
        job1:分1x5个->多5-4=1个
        job2:分1x8个->多8-2=6个
        job3:分1x1个->少10-1=9个
        job4:分1x2个->少4-2=2个

    第二次:(1+6)/(1+2)=7/3
        job1:分4个
        job2:分2个
        job3:分1个->少9个->分(7/3)x1=2.23个->少6.67
        job4:分2个->少2个->分(7/3)x2=4.66个->多2.66

    第三次:2.66/1=2.66
        job1:分4个
        job2:分2个
        job3:分1个->少9个->分(7/3)x1=2.23个->少6.67->分2.66x1个->共分(1+2.33+2.66)=6个
        job4:分2个->少2个->分4个

    第n次算:直到没有空闲资源。

(3)DRF:FIFO和FAIR只考虑单一资源内存,当存在贷款、CPU等资源需要分配时使用DRF进行调度。使用DRF策略对不同应用进行不同资源的不同比例限制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/472199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能电动自行车充电远程管理系统

目前市场上现有的户外普通充电桩只是一个用电计量工具&#xff0c;无法形成一个有效的停放充电管理环境。在受到雨、雪、风、暴晒等天气影响下根本无法使用,并且存在极大的安全隐患。同时公共无限的停放也导致充电位置被闲置车辆及杂物堆放占用&#xff0c;经常出现真正需要充电…

前端面试题 —— CSS (二)

目录 一、transition 和 animation 的区别 二、什么是物理像素&#xff0c;逻辑像素和像素密度&#xff0c;为什么在移动端开发时需要用到3x, 2x 这种图片&#xff1f; 三、margin 和 padding 的使用场景 四、CSS 优化和提高性能的方法有哪些&#xff1f; 五、display:in…

大数据编程实验3 熟悉常用的HBase操作

实验:熟悉常用的HBase操作 1实验目的 理解HBase在Hadoop体系结构中的角色&#xff1b;熟练使用HBase操作常用的Shell命令&#xff1b; 2 实验平台 操作系统&#xff1a;Linux Hadoop版本&#xff1a;3.1.3 HBase版本&#xff1a;2.2.2 JDK版本&#xff1a;1.8 3 实验内容和…

KDJB-702继保综合检测试验仪

一、产品参数 交流电流输出 输出精度&#xff1a;≤0.5A 2mA &#xff1e;0.5A 0.2% 相电流输出&#xff08;有效值&#xff09;&#xff1a;0&#xff5e;30A 三并电流输出&#xff08;有效值&#xff09;&#xff1a;0&#xff5e;900A 相电流长时间允许工作值&#xff…

java开发的chatGPT机器人系统

ChatGPT机器人发展趋势&#xff1a; 更加个性化&#xff1a;随着数据和技术的不断进步&#xff0c;ChatGPT机器人将能够更加准确地理解用户的需求和偏好&#xff0c;并提供更加个性化的回复和服务。 多语言支持&#xff1a;随着ChatGPT在各个国家和地区的普及&#xff…

uniapp(vue2)封装子组件

创建子组件 在项目根目录下新建 components 目录&#xff0c;右键选择“新建组件”&#xff0c;创建子组件&#xff08;这里以 search.vue 举例&#xff09;并且为同名目录&#xff0c;即 components --> search --> search.vue&#xff0c;这样父组件可以直接使用&…

C语言-学习之路-01

C语言学习之路-01 目录关键字数据类型常量变量声明和定义进制sizeof关键字整型&#xff1a;intshort、int、long、long long字符型&#xff1a;charASCII对照表转义字符数值溢出实型&#xff08;浮点型&#xff09;&#xff1a;float、double类型限定符字符串格式化输出和输入 …

深度学习笔记之稀疏自编码器

深度学习笔记之稀疏自编码器 引言引子&#xff1a;题目描述正确答案&#xff1a; A B C D \mathcal A \mathcal B \mathcal C \mathcal D ABCD题目解析 介绍&#xff1a;自编码器欠完备自编码器正则自编码器从先验角度解释稀疏自编码器稀疏自编码器的构建 引言 本节以一道算法…

14.基于双层优化的电动汽车优化调度研究(文章复现)

说明书 MATLAB代码&#xff1a;基于双层优化的电动汽车优化调度研究 关键词&#xff1a;双层优化 选址定容 输配协同 时空优化 参考文档&#xff1a;《考虑大规模电动汽车接入电网的双层优化调度策略_胡文平》中文版 《A bi-layer optimization based temporal and sp…

【OfflineExplorer篇】网站固定神器OfflineExplorer基础教程(简)

【OfflineExplorer篇】网站固定神器OfflineExplorer基础教程&#xff08;简&#xff09; 简单记录下&#xff0c;可固定特定网页数据脱机使用—【蘇小沐】 文章目录 【OfflineExplorer篇】网站固定神器OfflineExplorer基础教程&#xff08;简&#xff09;OfflineExplorer简介 …

C++基础 虚函数

参考 顺便记录下写的比较好的博客 C Primer Plus (第6版) C虚函数表 C内存模型 关于vtordisp知多少&#xff1f; 【VC】虚函数 内存结构 - 第四篇&#xff08;多重继承&#xff0c;无虚函数覆盖&#xff09; C 虚函数表剖析 虚函数 静态联编: 在编译过程中函数实现与函数关…

react相关概念

真实DOM和虚拟DOM区别 react关于虚拟DOM和真实DOM 虚拟DOM比较“轻”&#xff0c;真实DOM比较“重”&#xff0c;因为虚拟DOM是React在用&#xff0c;无需真实DOM上那么多属性 虚拟DOM最终一定会转为真实DOM放入页面 JSX JSX: 全称JavsScript XML 是react定义的一种类似于XM…

西门子S7-1200内部存储区和掉电数据保持设置

S7-1200内部存储区分类 S7-1200的内部存储区分为工作存储区、装载存储区和保持性存储区三种。 装载存储区 是非易失性存储区。用于存储用户项目文件&#xff08;用户程序、数据和组态&#xff09;。 如果不使用存储卡&#xff0c;用户使用TIA PORTAL软件下载项目即下载到CPU内…

jpg图片怎么压缩大小,3个有效工具分享

jpg图片怎么压缩大小&#xff1f;很多小伙伴都会用电脑来保存平时拍摄在的照片吧&#xff0c;拍摄的照片大多是jpg格式的&#xff0c;如果图片的体积太大&#xff0c;那么可能会占用很多的电脑存储空间&#xff0c;最后的结果是电脑变得非常慢&#xff0c;甚至卡死。平时我们在…

Python词云图的制作与案例分享

一、基本知识 Python 有很多可用于制作词云图的库&#xff0c;其中比较常用的有 wordcloud 和 jieba。 wordcloud 是一个用于生成词云图的 Python 库&#xff0c;其使用了 Python 的 PIL 库和 numpy 库。您可以使用 pip 命令来安装 wordcloud 库&#xff1a; pip install wo…

《计算机网络——自顶向下方法》精炼——2.6.2-2.7.1

“An investment in knowledge pays the best interest.” - Benjamin 文章目录 分布式散列表&#xff08;键-值&#xff09;对散列函数逻辑上的实现环形DHT对等方扰动对等方离开对等方加入 UDP套接字编程客户端代码服务器端代码 分布式散列表 分布式散列表是一种数据库。集中…

NIO基础 - 网络编程

non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream&#xff0c;它就是读写数据的双向通道&#xff0c;可以从 channel 将数据读入 buffer&#xff0c;也可以将 buffer 的数据写入 channel&#xff0c;而之前的 stream 要么是输入…

STM32配置ADC2(DMA)进行采集 DAC 输出-1

1.实验目标 在正点原子的ADC&#xff08;DMA&#xff09;例程上&#xff0c;将ADC1改成ADC2来采集电压&#xff0c;并且进行测试 开发板&#xff1a;正点原子探索者STM32F407ZG 2.查看adc.h和开发指南需要修改哪些配置 ADC相关 通过查看开发指南我们发现&#xff0c;ADC1 和…

垃圾分类算法

垃圾分类算法 垃圾分类算法系统整体结构Python环境TensorFlow环境微信小程序及后台服务器环境数据预处理 垃圾分类算法 基于TensorFlow和VGG-16卷积神经网络训练垃圾分类模型&#xff0c;通过服务器实现分类模型移植到移动端&#xff0c;并在微信小程序中进行应用。 系统整体…

【ROS仿真实战】机器人模型描述文件介绍(二)

文章目录 前言一、URDF与XACRO简介1.1 URDF1.2 XACRO 二、三维模型的选择DAE还是STL&#xff1f;三、 总结 前言 URDF和XACRO是ROS机器人领域中用于描述机器人模型的两种XML格式文件&#xff0c;都是使用XML语法来定义机器人模型的结构、物理特性以及运动学参数等。URDF (Unif…