CDH5中配置调度器只要在CM管理界面中配置即可
1、进入yarn的配置选项,选中ResourceManager Default Group标签
2、找到 容量调度程序配置 选项 输入xml:
-
<?xml version="1.0"?>
-
<configuration>
-
<property>
-
<name>yarn.scheduler.fair.user-as-default-queue</name>
-
<value>false</value>
-
</property>
-
<property>
-
<name>yarn.scheduler.fair.preemption</name>
-
<value>false</value>
-
</property>
-
<property>
-
<name>yarn.scheduler.fair.sizebasedweight</name>
-
<value>true</value>
-
</property>
-
-
<property>
-
<name>yarn.scheduler.fair.assignmultiple</name>
-
<value>true</value>
-
</property>
-
<property>
-
<name>yarn.scheduler.fair.max.assign</name>
-
<value>-1</value>
-
</property>
-
<property> <name>yarn.scheduler.fair.locality.threshold.node</name>
-
<value>0.1</value>
-
</property>
-
<property> <name>yarn.scheduler.fair.locality.threshold.rack</name>
-
<value>0.1</value>
-
</property>
-
</configuration>
3、找到 Fair Scheduler XML 高级配置代码段(安全阀)标签 输入xml:
-
<?xml version="1.0"?>
-
<allocations>
-
<queue name="root">
-
<minResources>500 mb,500 vcores</minResources>
-
<maxResources>2048 mb,2048 vcores</maxResources>
-
<maxRunningApps>10</maxRunningApps>
-
<minSharePreemptionTimeout>300</minSharePreemptionTimeout>
-
<weight>1.0</weight>
-
<aclSubmitApps> </aclSubmitApps>
-
<aclAdministerApps> </aclAdministerApps>
-
<queue name="hive-queue">
-
<minResources>400 mb, 400 vcores</minResources>
-
<maxResources>1024 mb, 1024 vcores</maxResources>
-
<aclAdministerApps>root,admin,hive</aclAdministerApps>
-
<aclSubmitApps>root,admin,hive</aclSubmitApps>
-
</queue>
-
<queue name="hbase-queue">
-
<minResources>200 mb,200 vcores</minResources>
-
<maxResources>500 mb,500 vcores</maxResources>
-
<aclAdministerApps>root,admin,hbase</aclAdministerApps>
-
<aclSubmitApps>root,admin,hbase</aclSubmitApps>
-
</queue>
-
</queue>
-
<user name="hadoop">
-
<maxRunningApps>100</maxRunningApps>
-
</user>
-
<userMaxAppsDefault>40</userMaxAppsDefault>
-
<fairSharePreemptionTimeout>6000</fairSharePreemptionTimeout>
-
</allocations>
4、重启yarn 访问nomenode:8088/cluster/scheduler 可见配置成功。
注意:
1、子队列的权限可以继承父队列,即使子队列设置自己的权限控制,还是会与父队列的权限取并集。而root队列是所有队列的父队列,他的权限是所有用户都可以提交作业、管理作业。所以,子队列的权限设置是不起作用的。
那如何设置root队列的权限呢?对hadoop2.2.0版本来说,这是个bug:https://issues.apache.org/jira/browse/YARN-1258
https://issues.apache.org/jira/browse/YARN-1288
这个问题怎么解决?那就需要将hadoop2.2.0的源码打patch,重新编译。
2、根据官网的配置解析,有一个配置项可以控制队列提交作业权限:aclSubmitApps。我们配置以后发现,用户权限可以使用 hadoop queue -showacls查看,但是正在提交作业的时候,仍然可以提交到没有提交权限的队列。
通过查看源码,发现还有一个配置需要进行配置:aclAdministerApps,这个权限是要大于aclSubmitApps,默认都可以,所以,只配置aclSubmitApps提交作业控制,是不起作用的。
-
-
-
-
yarn.scheduler.fair.user-as-default-queue
-
false
-
-
-
yarn.scheduler.fair.preemption
-
false
-
-
-
yarn.scheduler.fair.sizebasedweight
-
true
-
-
-
-
yarn.scheduler.fair.assignmultiple
-
true
-
-
-
yarn.scheduler.fair.max.assign
-
-1
-
-
yarn.scheduler.fair.locality.threshold.node
-
0.1
-
-
yarn.scheduler.fair.locality.threshold.rack
-
0.1
-
-
-
-
-
-
yarn.scheduler.fair.user-as-default-queue
-
false
-
-
-
yarn.scheduler.fair.preemption
-
false
-
-
-
yarn.scheduler.fair.sizebasedweight
-
true
-
-
-
-
yarn.scheduler.fair.assignmultiple
-
true
-
-
-
yarn.scheduler.fair.max.assign
-
-1
-
-
yarn.scheduler.fair.locality.threshold.node
-
0.1
-
-
yarn.scheduler.fair.locality.threshold.rack
-
0.1
-
-
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29754888/viewspace-1589873/
,如需转载,请注明出处,否则将追究法律责任。