前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0760-7.0.3-如何使用Cloudera Manager设置使用YARN队列的ACL

0760-7.0.3-如何使用Cloudera Manager设置使用YARN队列的ACL

作者头像
Fayson
发布2020-04-21 15:58:13
1.9K0
发布2020-04-21 15:58:13
举报
文章被收录于专栏:Hadoop实操

文档编写目的

YARN的队列默认支持ACL的功能,即可以控制哪些用户/组可以提交任务到指定队列,也可以控制哪些用户/组可以管理该队列的作业(删除作业)。通过YARN Queue Manager UI可以界面化配置YARN的资源队列,队列权重,队列资源,以及队列的ACL等。本文主要讲述如何在CDP DC 7.0.3集群上使用YARN Queue Manager UI来控制队列的ACL。

  • 测试环境:

1.Redhat7.6

2.采用root用户操作

3.CM和CDP DC版本为7.0.3

启用YARN的ACL

1.通过Cloudera Manager进入YARN的配置,启用YARN的ACL。

2.设置yarn.admin.acl

如上所述,这里我们设置为“yarn yarn”,即用户yarn和组yarn,当然只设置一个用户yarn也一样。

YARN的管理员设置,如可执行yarn rmadmin/yarn kill等命令,该值必须配置,否则后续的队列相关的acl管理员设置无法生效。配置值时可以设置user/group:

代码语言:javascript
复制
user1,user2 group1,group2 #user和group用空格隔开
 group1,group2 #只有group情况下,必须在最前面加上空格

3.保存配置更改并重启集群服务

创建队列并进行ACL设置

1.在集群创建下列用户,并配置到不同的组。

如下图,用户usera,userb,userc,userd,usere所属的组都跟自己同名。用户userf的组为usere,与用户usere为同一个组。

2.在CM上点击集群,再点击YARN Queue Manager UI进入队列管理界面

3.点击root旁边的三个点,进行子队列的创建,这里分别创建队列usera和userb

点击后,进行添加,设置队列名和CONFIGURED CAPACITY的百分比,这里所有队列的CONFIGURED CAPACITY百分比加起来必须是100%,否则不能保存。

全部添加完之后,如下图

4.设置队列的ACL权限

以root.usera为例,点击旁边的三个点,然后选择查看/编辑队列

编辑后如下图,这个设置的意思是用户usera有提交应用到队列root.usera的权限。用户userb,userc和用户组usere里面的用户拥有对队列root.usera的管理权限。

对队列userb的设置如下,表示用户usera,userb拥有对队列root.userb的提交应用的权限,下面的Queue Administer ACL里面是天的一个空格,表示所有用户都没有管理权限

队列ACL测试

1.分别用用户usera,userb和userd提交任务到root.usera

代码语言:javascript
复制
hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi -D mapred.job.queue.name=usera 1 10

根据上面的测试可以看到,拥有Submit Application ACL或者Queue Administer ACL权限的用户或者组都可以向该队列提交任务。没有权限的用户,则会提交任务失败。

2.通过用户usera提交任务到root.usera。然后在任务执行过程中,分别用usera,userb,userd,userf来kill任务,看是否拥有队列的管理权限

提交任务命令如下

代码语言:javascript
复制
hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi -D mapred.job.queue.name=usera 1000 10

kill application的命令如下,后面的applicaition ID根据提交的任务来进行修改

代码语言:javascript
复制
yarn application -kill application_1582953488656_0018

如下图,用户usera终止任务成功

如下图,用户userb终止任务成功

如下图,用户userd终止任务失败

如下图,用户userf终止任务成功

以上测试说明,提交任务的用户和拥有该资源池管理权限的用户或用户组,拥有对该队列的管理权限。

3.再用用户usera提交任务到队列root.userb然后使用用户userb进行kill该任务。

从上图可以看到,用户userb执行kill命令失败,提示userb没有权限进行管理该任务。说明了只有提交任务权限的用户,不能对该队列进行管理。

总结

1.要通过YARN Queue Manager UI进行资源池队列的ACL控制,需要先在YARN的配置里面勾选启用ResourceManager ACL。

2.一旦配置了队列的ACL,用户可以往自己有权限的队列里提交作业,如果该队列没权限,则作业提交失败。如果用户没有队列的管理访问权限,没办法kill该队列里的作业。

3.子队列会继承父队列的权限,在子队列设置权限前,父队列ACL要设置成空格。

4.某个用户可以kill自己提交的作业,即使该用户不在“Queue Administer ACL”的用户/组里。

5.一旦用户具有某个队列的“Queue Administer ACL”,即使他不在“Submit Administer ACL”里,他依旧可以往该队列提交任务。

6.在配置框里面,user和group之间用空格隔开。多个user或者多个group用逗号分隔。如果只配置group,需要在前面加上空格。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档