公平调度器案例

公平调度器也有默认队列default

需求

新增两个队列test和ranan(以用户所属组命名)。

期望实现以下效果:若用户提交任务时指定队列,则任务提交到指定队列运行;若没有指定队列,test用户提交的任务到root.group.test,ranan提交的任务到 root.group.ranan 队列运行,其中group用用户所属组。

公平调度器的配置:yarn-site.xml 公平调度器队列分配文件fair-scheduler.xml(文件名可自定义)

配置文件参考资料

任务队列放置规则参考资料

配置多队列的公平调度器

1 修改yarn-site.xml文件,加入以下从参数

yarn-site.xml文件在/opt/module/hadoop-3.1.3/etc/hadoop/目录下

  1. <property>
  2. <name>yarn.resourcemanager.scheduler.class</name>
  3. <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
  4. <description>配置使用公平调度器</description>
  5. </property>
  6. <property>
  7. <name>yarn.scheduler.fair.allocation.file</name>
  8. <value>/opt/module/hadoop-3.1.3/etc/hadoop/fair-scheduler.xml</value>
  9. <description>指明公平调度器队列分配配置文件</description>
  10. </property>
  11. <property>
  12. <name>yarn.scheduler.fair.preemption</name>
  13. <value>false</value>
  14. <description>禁止队列间资源抢占,愿意借可以借</description>
  15. </property>

2 配置fair-scheduler.xml

  1. <?xml version="1.0"?>
  2. <allocations>
  3. <!-- 单个队列中 Application Master 占用资源的最大比例,取值 0-1 ,企业一般配置 0.1,默认0.1-->
  4. <queueMaxAMShareDefault>0.5</queueMaxAMShareDefault>
  5. <!-- 单个队列最大资源的默认值 test ranan default 总12G12核-->
  6. <queueMaxResourcesDefault>4096mb,4vcores</queueMaxResourcesDefault>
  7. <!-- 增加一个队列 test -->
  8. <queue name="test">
  9. <!-- 队列最小资源 -->
  10. <minResources>2048mb,2vcores</minResources>
  11. <!-- 队列最大资源 -->
  12. <maxResources>4096mb,4vcores</maxResources>
  13. <!-- 队列中最多同时运行的应用数,默认 50,根据队列的线程数配置 -->
  14. <maxRunningApps>4</maxRunningApps>
  15. <!-- 队列中 Application Master 占用资源的最大比例 -->
  16. <maxAMShare>0.5</maxAMShare>
  17. <!-- 该队列资源权重,默认值为 1.0 -->
  18. <weight>1.0</weight>
  19. <!-- 队列内部的资源分配策略 -->
  20. <schedulingPolicy>fair</schedulingPolicy>
  21. </queue>
  22. <!-- 增加一个队列 ranan -->
  23. <queue name="ranan" type="parent">
  24. <!-- 队列最小资源 -->
  25. <minResources>2048mb,2vcores</minResources>
  26. <!-- 队列最大资源 -->
  27. <maxResources>4096mb,4vcores</maxResources>
  28. <!-- 队列中最多同时运行的应用数,默认 50,根据线程数配置 -->
  29. <maxRunningApps>4</maxRunningApps>
  30. <!-- 队列中 Application Master 占用资源的最大比例 -->
  31. <maxAMShare>0.5</maxAMShare>
  32. <!-- 该队列资源权重,默认值为 1.0 -->
  33. <weight>1.0</weight>
  34. <!-- 队列内部的资源分配策略 -->
  35. <schedulingPolicy>fair</schedulingPolicy>
  36. </queue>
  37. <!-- 任务队列分配策略,可配置多层规则,从第一个规则开始匹配,直到匹配成功 -->
  38. <queuePlacementPolicy>
  39. <!-- 提交任务时指定队列,如未指定提交队列,则继续匹配下一个规则; false 表示: 如果指定队列不存在,不允许自动创建-->
  40. <rule name="specified" create="false"/>
  41. <!-- 提交到 root.group.username 队列,若 root.group 不存在,不允许自动创建; 若root.group.user 不存在,允许自动创建 -->
  42. <rule name="nestedUserQueue" create="true">
  43. <rule name="primaryGroup" create="false"/>
  44. </rule>
  45. <!-- 最后一个规则必须为 reject 或者 default。 Reject 表示拒绝创建提交失败,default 表示把任务提交到 default 队列 -->
  46. <rule name="reject" />
  47. </queuePlacementPolicy>
  48. </allocations>

3 分发配置文件重启yarn

  1. [ranan@hadoop102 hadoop]$ vim yarn-site.xml
  2. [ranan@hadoop102 hadoop]$ vim fair-scheduler.xml
  3. [ranan@hadoop102 hadoop]$ xsync yarn-site.xml fair-scheduler.xml
  4. //yarn的resourceManager在103上
  5. [ranan@hadoop103 hadoop-3.1.3]$ sbin/stop-yarn.sh
  6. Stopping nodemanagers
  7. Stopping resourcemanager
  8. [ranan@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
  9. Starting resourcemanager
  10. Starting nodemanagers

4 测试提交任务

1.提交任务时指定队列,按照配置规则,任务会到指定的 root.test 队列

  1. [ranan@hadoop103 hadoop-3.1.3]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi -D mapreduce.job.queuename=root.test 1 1

2)提交任务时不指定队列,按照配置规则,任务会到 root.atguigu.atguigu 队列

  1. [ranan@hadoop103 hadoop-3.1.3]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 1 1

Yarn 公平调度器案例的更多相关文章

  1. Yarn 容量调度器多队列提交案例

    目录 Yarn 容量调度器多队列提交案例 需求 配置多队列的容量调度器 1 修改如下配置 SecureCRT的上传和下载 2 上传到集群并分发 3 重启Yarn或yarn rmadmin -refre ...

  2. yarn的调度器

    三种调度器 1.FIFO Scheduler 把应用按提交的顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队列中最头上的应用进行分配资源,等最前面的应用需求满足后再给下一个分配,以 ...

  3. 别被官方文档迷惑了!这篇文章帮你详解yarn公平调度

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由@edwinhzhang发表于云+社区专栏 FairScheduler是yarn常用的调度器,但是仅仅参考官方文档,有很多参数和概念文 ...

  4. MRv2 工作机制 、 公平调度器、MR压缩、边数据

    对于节点数超过 4000 的大型集群,前一节描述的 MapReduce 系统开始面临着扩展的瓶颈. 2010 年 Yahoo 的团队开始设计下一代的 MapReduce. (Yet Another R ...

  5. 三:Fair Scheduler 公平调度器

    参考资料: http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html http://h ...

  6. 大数据之Yarn——Capacity调度器概念以及配置

    试想一下,你现在所在的公司有一个hadoop的集群.但是A项目组经常做一些定时的BI报表,B项目组则经常使用一些软件做一些临时需求.那么他们肯定会遇到同时提交任务的场景,这个时候到底如何分配资源满足这 ...

  7. YARN的capacity调度器主要配置分析

    yarn中一个基本的调度单元是队列. yarn的内置调度器: 1.FIFO先进先出,一个的简单调度器,适合低负载集群.2.Capacity调度器,给不同队列(即用户或用户组)分配一个预期最小容量,在每 ...

  8. Yarn 组件的指挥部 – 调度器Scheduler

    linux基础 为hadoop集群的搭建扫清了障碍,也为内存的管理,文件系统的管理扫清了障碍 接着到Hadoop的阶段,首先做集群的安装,深入到使用这两个核心的组件,分布式文件系统HDFS,解决大量数 ...

  9. YARN的三种调度器的使用

    YRAN提供了三种调度策略 一.FIFO-先进先出调度器 YRAN默认情况下使用的是该调度器,即所有的应用程序都是按照提交的顺序来执行的,这些应用程序都放在一个队列中,只有在前面的一个任务执行完成之后 ...

随机推荐

  1. Java 将Excel转为et和ett格式

    以.et结尾的文件格式是属于金山办公软件WPS Office中的电子表格文件,.ett是一种模板文件格式.除了通过WPS软件可以创建该格式的电子表格外,也可以通过格式转换的方法来获得,如将Micros ...

  2. 重学STM32---(十)之CAN通信(二)

    目录 前言 程序编写 主代码 测试 前言   CAN协议是非常难的,但是在stm32中却是简单的,只需要我们配置寄存器即可,,,即使这样,我在学习的时候也遇到了许多困难 程序编写 1.开时钟,不用说 ...

  3. 中文NER的那些事儿4. 数据增强在NER的尝试

    这一章我们不聊模型来聊聊数据,解决实际问题时90%的时间其实都是在和数据作斗争,于是无标注,弱标注,少标注,半标注对应的各类解决方案可谓是百花齐放.在第二章我们也尝试通过多目标对抗学习的方式引入额外的 ...

  4. Arraylist,LinkedList和Vector的异同

    相同: 都是List接口的常用类,List接口:存储有序,可重复的数据 差异: ArrayList: 是作为List接口中的主要实现的类:线程不安全,效率高.底层使用是Object[] element ...

  5. Java测试开发--Comparable和Comparator接口(五)

    Comparable 简介Comparable 是排序接口.若一个类实现了Comparable接口,就意味着"该类支持排序".此外,"实现Comparable接口的类的对 ...

  6. 【Java】String和List类型转换

    String & List String ==>List //方法一 List<String> list = Arrays.asList(str.split(",& ...

  7. Emmet语法 —— 快速生成HTML结构

    快速生成HTML结构语法 1.生成单个标签 : 标签名+tab,比如 div 然后tab 键, 就可以生成 <div></div> 2.生成多个相同标签 div*3 + tab ...

  8. 数组 & 对象 & 函数

    数组 数组也是一个对象,不同的是对象用字符串作为属性名,而数组用数字作为索引,数组的索引从0开始 创建数组: //方式一:构造器,可以在创建数组时指定 Var arr = new Array(1,2, ...

  9. 怎么将本地已有的一个项目上传到新建的git仓库的方法

    将本地已有的一个非git项目上传到新建的git仓库的方法一共有两种. 一. 克隆+拷贝 第一种方法比较简单,直接用把远程仓库拉到本地,然后再把自己本地的项目拷贝到仓库中去.然后push到远程仓库上去即 ...

  10. SpringCloud升级之路2020.0.x版-34.验证重试配置正确性(2)

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 我们继续上一节针对我们的重试进行测试 验证针对限流器异常的重试正确 通过系列前面的源码分析 ...