本文主要介绍了用户在hadoop中拥有创建表的权限后,ACL访问权限没有HDFS文件的例外情况。这篇文章很详细,有一定的参考价值。感兴趣的朋友一定要读出来!
问题现象
测试环境
1.Redhat7.4
2.CDH6.2.0
3.集群中启用了Sentry和Kerberos。
使用hive administrator在C6集群中创建一个测试库acltest,并将该库的CREATE权限授予ldapff组。ldapff用户在此库下创建的表没有权限通过在命令行使用hadoop命令来访问该表的hdfs目录,这表明没有权限访问它。
将acltest库的CREATE权限授予ldapff用户。
使用ldapff用户创建测试表并插入测试数据。
在命令行使用hadoop命令访问在acltest库下创建的测试表数据目录。
2
问题分析
ldapff用户拥有acltest库的CREATE权限,在该库下创建的测试表的所有者是ldapff。但是,在HDFS,因为父目录(/user/hive/warehouse/acltest . db)没有足够的访问权限,所以ldapff用户无法访问他创建的测试表的HDFS目录。1.当只有acltest库的CRETATE权限被授予ldapff组时,/user/hive/warehouse/ACL test . db目录的ACL如下所示
可以看到测试表的父目录(/user/hive/warehouse/ACL test . db),ldapff组的访问权限为“group:ldapff: -”。因为ldapff组无权访问表的父目录,所以即使ldapff是测试表的所有者,它也不能正常访问相应的HDFS目录。
2.需要授权ldapff用户选择acltest库。测试后,授予acltest库SELECT权限后,ldapff组通常可以访问HDFS目录。
此时检查acltest库的HDFS路径ACL权限,如下所示:
显示ldapff组拥有查看acltest库对应的HDFS的读取和执行权限,并成功显示再次访问测试表的HDFS路径。
以前,数据库/表和HDFS权限之间的对应关系是:SELECT=READ,ALL=WRITE。在C6,还有一个名为CREATE的特权,这是一个特殊的特权,所以它不能对应HDFS的任何权限,CREATE特权管理的对象是数据库和表。因此,这个CREATE不能直接映射到HDFS权限,也就是说,所有者的rwx权限只能添加到HDFS文件的ACL中。
以上就是文章“在hadoop中创建表后,没有HDFS文件的用户的ACL访问权限有什么问题?”感谢阅读!希望分享的内容对大家有所帮助。更多相关知识,请关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/139132.html