本文将详细解释用户在hadoop中拥有CREATE权限构建表后,在没有HDFS文件的情况下ACL访问权限的异常分析。边肖觉得挺实用的,分享给大家参考。希望你看完这篇文章能有所收获。
描述异常
测试环境
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库下创建的测试表数据目录。
分析异常
ldapff用户拥有acltest库的CRETATE权限,在该权限下用户创建了测试表,Ldapff用户是测试表的所有者。此时,表/用户/配置单元/仓库/acltest.db目录的父目录的ACL显示如下:
Hadoop fs-getfacl/user/hive/warehouse/ACL test . db
从上图可以看到测试表的父目录(/user/hive/warehouse/ACL test . db),ldapff组的访问权限为“Group : ldapff 3360-”。因为ldapff组无权访问表的父目录,所以即使LDAP FF是测试表的所有者,它也不能正常访问相应的HDFS目录。
解决异常
ldapff用户组无法访问目录/用户/配置单元/仓库/acltest.db,所以通过授权SELECT权限解决。
1.为ldapff用户授权acltest库的SELECT权限。
此时检查acltest库的HDFS路径ACL权限,如下所示:
显示ldapff组拥有查看acltest库对应的HDFS的读取和执行权限,并成功显示再次访问测试表的HDFS路径。
Hadoop fs-ls/user/hive/warehouse/ACL test . db/test
2.在测试这个问题的过程中,发现删除授予ldapff组的SELECT权限和acltest库对应的HDFS路径的ACL权限发生了变化。
再次检查测试表的HDFS路径发现,可以再次正常访问:
删除授予的CREATE权限并重新授予acltest库CREATE权限后,ACL的权限再次更改。
关于“用户在hadoop中拥有建表CREATE权限后无HDFS文件ACL访问权限异常分析”的文章在此分享。我希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/139133.html