当前位置:   article > 正文

YARN调度器【capacity-scheduler.xml】默认配置

capacity-scheduler.xml

1、三种常见调度器

1.1、先进先出调度器

  • first-in first-out scheduler
  • FIFO Scheduler
  • 后入队的任务 要等待 前入队的任务 出队
可配置:
1、每个用户的最大资源占比,防止单个用户把资源占满
2、限制哪些用户可以提交应用到本队列

1.2、容量调度器

  • Capacity Scheduler
  • 相当于 多个 FIFO Scheduler
  • 不同队列上的任务可以并行(比如 3个队列就可以并行3个任务)
  • 相同队列上的任务不能并行
可配置:
1、默认容量占比:各个队列占据一定百分比的资源
(如:a队列40% b队列60%)
2、最大容量占比:队列占据的资源百分比的最大值
(如:a队列最大70%,当超出40%时,可以借b队列的空闲资源,最多借30%)

划分方式:
按业务划分(更常用):下单、支付、物流…
按技术划分:HIVE、Spark、Flink…

1.3、公平调度器

  • Fair Scheduler
  • 和Capacity Scheduler类似,可以多队列配置;不同的是,叶子队列不是FIFO的
  • 在同一条叶子队列上,所有作业可以并发;
    资源分配的依据:时间尺度、优先级、资源缺额…

在时间尺度上获得公平的资源

最大最小公平分配算法

2、容量调度器 多队列配置

1、编辑配置文件

vim $HADOOP_HOME/etc/hadoop/capacity-scheduler.xml
  • 1

2、修改根队列下面的叶队列名称,逗号分隔(此处新增队列名称为hive

<property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>default,hive</value>
    <description>在根队列下设置叶队列名称</description>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5

3、修改 名为default的队列 的容量占比

<property>
    <name>yarn.scheduler.capacity.root.default.capacity</name>
    <value>40</value>
    <description>设置root下名为default队列的容量占比</description>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5

4、给新队列配置

<property>
    <name>yarn.scheduler.capacity.root.hive.capacity</name>
    <value>60</value>
    <description>root下名为hive的队列 的 容量占比</description>
</property>
<property>
    <name>yarn.scheduler.capacity.root.hive.user-limit-factor</name>
    <value>1</value>
    <description>每个用户可以占据该队列资源占比的上限(防止某用户把资源占满)</description>
</property>
<property>
    <name>yarn.scheduler.capacity.root.hive.maximum-capacity</name>
    <value>80</value>
    <description>该队列的最大容量占比(可外借80-60=20)</description>
</property>
<property>
    <name>yarn.scheduler.capacity.root.hive.state</name>
    <value>RUNNING</value>
    <description>该队列状态(RUNNING或STOPPED)</description>
</property>
<property>
    <name>yarn.scheduler.capacity.root.hive.acl_submit_applications</name>
    <value>*</value>
    <description>访问控制列表:限定哪些用户 能访问该队列</description>
</property>
<property>
    <name>yarn.scheduler.capacity.root.hive.acl_administer_queue</name>
    <value>*</value>
    <description>访问控制列表:限定哪些用户 可以管理该队列上的作业</description>
</property>
<property>
    <name>yarn.scheduler.capacity.root.hive.acl_application_max_priority</name>
    <value>*</value>
</property>
<property>
    <name>yarn.scheduler.capacity.root.hive.maximum-application-lifetime</name>
    <value>-1</value>
    <description>提交到该队列的应用 的 最大生存时间(-1表示无限时间)</description>
</property>
<property>
    <name>yarn.scheduler.capacity.root.hive.default-application-lifetime</name>
    <value>-1</value>
    <description>提交到该队列的应用 的 默认生存时间(-1表示无限时间;要求小于最大生存时间)</description>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

5、分发配置

rsync.py $HADOOP_HOME/etc/hadoop/capacity-scheduler.xml
  • 1

6、查看浏览器,端口8088

7、提交到指定队列

  • Java代码的org.apache.hadoop.conf.Configuration
configuration.set("mapred.job.queuename", "hive");
  • 1
  • HIVE
set mapred.job.queue.name=hive
  • 1

3、单词

en
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/804578
推荐阅读
相关标签