温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github: https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1.文档编写目的
在前面Fayson介绍了《如何使用Cloudera Manager设置使用YARN队列的ACL》和《如何在Cloudera Manager中配置Yarn放置规则》。通过放置策略可以自动的将用户分的作业分配到对应的资源池,如果用户手动指定资源池则也可以正常提交作业到指定的资源池,因此需要结合Yarn队列的ACL控制,可以防止用户随意指定资源池问题。
Hive启用Sentry后需要禁用用户模拟功能,所有访问Hive的用户均是已hive用户来提交作业。在只使用放置策略的情况下,访问hive的用户可以通过mapreduce.job.queuename参数指定资源池。在Yarn启用ACL后,Hive提交作业会出现“User hive cannot submit applications to queue root.testb”问题。本篇文章Fayson主要介绍在Hive启用Sentry及Yarn启用ACL后如何限制用户提交Yarn资源池。
- 内容概述
1.测试环境描述
2.配置Yarn ACL
3.禁用Hive指定资源池配置
4.总结
- 测试环境
1. CM和CDH版本为5.15
2.测试环境描述
1.本篇文章基于以下测试用户进行说明
2.Yarn的资源池配置
3.Yarn的放置策略说明
基于放置规则usera的作业会自动分配到root.testa队列,userc的作业会自动分配到root.testb队列,usere的作业会自动分配到root.defaut队列。
3.配置Yarn ACL
在前面的文章《如何使用Cloudera Manager设置使用YARN队列的ACL》中已详细的描述了Yarn ACL的使用,这里就不在详细的说明。
1.在启用Yarn ACL后需要为testa和testb队列配置提交和管理访问控制
配置testa和testb组可以提交Yarn资源池的,注意这里在testa和testb资源池中均增加了hive用户。
注意:在Hive启用Sentry且Yarn启用ACL后,需要为指定的资源池增加hive的提交和管理访问控制,否则会导致作业执行失败提示“User hive cannotsubmit applications to queue root.testb”。前面也提到过Hive启用Sentry后,关闭了Hive的模拟功能,所有用户均已hive用户提交,因此在每个资源池的ACL中需要增加hive用户,同样也可以在父池添加,所有子池均会集成父池的配置。如下图所示:
4.禁用Hive指定资源池配置
由于Hive启用Sentry后,模拟用户功能关闭,导致所有作业均已hive用户提交,所以在资源池增加hive提交和管理访问控制后,所有访问Hive的用户均可以随意指定Yarn资源池,未达到限制用户提交资源池问题,因此此处还需要结合Hive的配置将mapreduce.job.queuename配置禁用。
1.使用管理员登录CM,进入hive服务配置界面
2.搜索“hive-site.xml”,在配置中增加如下配置
代码语言:javascript复制<property>
<name>hive.conf.restricted.list</name>
<value>mapred.job.queue.name,mapreduce.job.queuename</value>
</property>
(可左右滑动)
保存配置并重启相应服务。
5.功能验证
1.在禁用“mapreduce.job.queuename”参数后用户不能在命令行指定Yarn的资源池
2.使用usere用户测试,由于root.default资源池并未配置hive用户的提交和管理访问控制,所以提示“User hive cannot submitapplications to queue root.default”
3.使用usera用户测试,在root.teta资源池中配置了hive用户提交和管理访问控制,该用户的作业通过放置规则可以找到对应的资源池root.testa
作业执行成功
6.总结
1.Yarn的放置规则只能为用户默认的匹配资源池,但不能限制用户手动指定符合规则的资源池。
2.YarnACL可以限制用户提交资源池的权限,防止用户提交资源池到其它符合放置策略的资源池。
3.Hive启用Sentry后,相应的资源池中需要增加hive用户的提交和管理访问控制,否则无法提交作业到相应的资源池。
4.Hive启用Sentry后禁用了用户模拟功能,导致所有作业均以hive用户提交,为了防止用户提交作业到其它资源池,需要禁用hive的mapreduce.job.queuename
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。