前提
- 采用Cloudera Manager管理集群
- yarn.resourcemanager.scheduler.class 选择CapacityScheduler
配置截图
配置
<configuration>
<!-- root队列下default、hive两个队列 -->
<property>
<name>yarn.scheduler.capacity.root.queues</name>
<value>default,hive</value>
<description>root队列的所有子队列</description>
</property>
<!-- default队列配置 -->
<property>
<name>yarn.scheduler.capacity.root.default.capacity</name>
<value>50</value>
<description>队列的资源容量</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
<value>100</value>
<description>队列的最大资源容量</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.state</name>
<value>RUNNING</value>
<description>队列的运行状态</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.acl_submit_applications</name>
<value>*</value>
<description>限制哪些用户可向default队列中提交应用程序</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.acl_administer_queue</name>
<value>*</value>
<description>限制哪些用户可管理default队列中的应用程序,*表示任意用户</description>
</property>
<!-- hive队列配置 -->
<property>
<name>yarn.scheduler.capacity.root.hive.queues</name>
<value>root.users.prod,root.users.hdfs,root.users.operation</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.hive.capacity</name>
<value>50</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.hive.maximum-capacity</name>
<value>80</value>
</property>
<!-- hive队列的子队列root.users.prod配置 -->
<property>
<name>yarn.scheduler.capacity.root.hive.root.users.prod.capacity</name>
<value>40</value>
</property>
<!-- hive队列的子队列root.users.operation配置 -->
<property>
<name>yarn.scheduler.capacity.root.hive.root.users.operation.capacity</name>
<value>40</value>
</property>
<!-- hive队列的子队列root.users.hdfs配置 -->
<property>
<name>yarn.scheduler.capacity.root.hive.root.users.hdfs.capacity</name>
<value>20</value>
</property>
</configuration>
问题
- hive中账户与capacity中分配队列不匹配?
hive某个*账户下默认使用root.users.*队列,举例:prod账户使用root.users.prod队列,顾配置子队列名称时使用root.users.prod而不是prod
- 异常
org.apache.hadoop.yarn.exceptions.YarnException: Failed to submit application_1530153278436_0016 to YARN : Application application_1530153278436_0016 submitted by user hive to unknown queue: root.users.prod
此问题解决方式和前面说明的队列不匹配问题一样
注:有关数据仓库等问题,有兴趣的同学可以联系我。TEL/微信:18310801089