一、核心配置
在容量调度器中所有队列都位于根节点root下,如果只配置子队列权限,由于继承关系,还是会遵循根队列的权限,我们可以用 mapred queue -showacls 命令查看用户拥有哪些队列的权限
在capacity-scheduler.xml中配置两个地方,一个根节点权限,一个想要限制的队列
<!-- 指定根节点用户提交权限 -->
<property>
<name>yarn.scheduler.capacity.root.acl_administer_queue</name>
<value>root</value>
</property>
<!-- 指定根节点用户管理权限 -->
<property>
<name>yarn.scheduler.capacity.root.acl_submit_applications</name>
<value>root</value>
</property>
<!-- 指定子队列spark用户提交权限 -->
<property>
<name>yarn.scheduler.capacity.root.spark.acl_submit_applications</name>
<value>AAA</value>
</property>
<!-- 指定子队列spark用户管理权限 -->
<property>
<name>yarn.scheduler.capacity.spark.acl_administer_queue</name>
<value>AAA</value>
</property>
二、 yarn的配置 --只用开启ACL权限即可
<!-- 开启yarn的ACL检测默认是false-->
<property>
<description>Are acls enabled.</description>
<name>yarn.acl.enable</name>
<value>true</value>
</property>
三、用户权限配置
假设你启动hadoop集群时用的用户是AAA,则此时hdfs权限应该为AAA:supergroup
当你用BBB用户提交任务到yarn中队列里,来验证队列权限问题,会报个该用户不具有
AAA:supergroup 这个权限错误,此时只需要在linux本地创建supergroup组,将BBB用户
加入到该组下,重启集群,在次验证队列用户权限,至此就ok了
//创建组
sudo groupadd groupname
//添加组用户
sudo usermod -aG groupname username
//查看用户和组
id username
//从组中删除用户
sudo gpasswd -d username groupname