登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

hadoop3.x yarn 调度策略:Fair Scheduler(公平调度)仅提交到默认队列配置

说明

提交任务时,如果不指定队列,提交到默认队列中,即:root.default 队列

修改yarn-site.xml配置

登录 hadoop2

修改 yarn-site.xml 文件:

vim /program/hadoop-3.0.3/etc/hadoop/yarn-site.xml

增加下面内容:

指定公平调度方式

<!--  指定使用fairScheduler的调度方式  -->
<property>
     <name>yarn.resourcemanager.scheduler.class</name>
     <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>

开启抢占

<!-- 开启资源抢占,当队列资源使用
yarn.scheduler.fair.preemption.cluster-utilization-threshold 这么多比例的时候,就从其他空闲队列抢占资源,默认为false,即:不抢占
-->
<property>
     <name>yarn.scheduler.fair.preemption</name>
     <value>true</value>
</property>

<property>
     <name>yarn.scheduler.fair.preemption.cluster-utilization-threshold</name>
     <value>0.8f</value>
</property>

关键

<property>
    <name>yarn.scheduler.fair.user-as-default-queue</name>
    <value>false</value>
</property>

解释:

  • 默认true,提交任务未指定队列时,默认是将当前linux登录用户名作为队列名。这个配置就实现了根据用户名自动分配资源池

  • 设置成false,当任务中未指定资源池的时候,将使用默认的队列,即:root.default,可在 fair-scheduler.xml 中配置默认队列

同步

同步到 hadoop1:

rsync -av /program/hadoop-3.0.3/etc/hadoop/*  root@hadoop1:/program/hadoop-3.0.3/etc/hadoop/

同步到 hadoop3:

rsync -av /program/hadoop-3.0.3/etc/hadoop/*  root@hadoop3:/program/hadoop-3.0.3/etc/hadoop/

重启 yarn

登录 hadoop2,执行下面命令关闭 yarn:

stop-yarn.sh
start-yarn.sh

访问 web

访问:http://hadoop2:8088/ ,查看队列,显示界面如下:

默认有 队列 root.default

测试

同时 在 hadoop1、hadoop3执行下面命令

hadoop jar ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar wordcount /test2/data.txt   /result010519
hadoop jar ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar wordcount /test2/data.txt   /result010518

web查看任务

如下图,会发现多个任务同时执行

web查看队列

提交到 root.default 队列中


原文出处:https://malaoshi.top/show_1IX2XTpNsc4w.html