【发布时间】:2019-12-10 01:31:00
【问题描述】:
HDFS 的根目录中有几个文件夹:
- 目录1
- 子目录1
- 表1
- 表2
- 子目录2
- 子目录1
- 目录2
- 子目录1
- 表1
- 表2
- 子目录1
- 目录3
它们都有子文件夹,其中包含使用 Hive 查询的不同 Parquet 文件。 即使权限在我看来没问题,我也无法加载其中一个子文件夹(例如 dir2 中的 table1),但在尝试加载它时出现 EXECUTE 错误。 代码在 Jupyter 笔记本中运行。 用户按组进行组织。
我已使用以下命令将相关目录的 rwx 权限添加到组:
hdfs dfs -setfacl -R -m group:user_group:rwx /dir2/subdir2
我得到的错误如下所示:
Cannot create staging directory 'hdfs://server:8020/dir2/subdir1/table1/.hive-staging_hive_2019-08-01_13-04-22': Permission denied: user=username, access=EXECUTE, inode="/dir2":hdfs:supergroup:drwxrwx---
我已将 dir2 的读取和执行权限添加到用户组,但错误仍然存在。从这个错误来看,我认为以某种方式应用了默认权限并且它们是 ---
所以,总结一下; 组对根目录具有读取和执行权限,对表目录具有读取、写入和执行权限,但对根目录的权限一直失败。
这是权限的外观:
# file: /dir2
# owner: hdfs
# group: supergroup
user::rwx
user:some_group1:r-x
group::---
group:some_group2:rwx
group:user_group:r-x
group:hive:rwx
group:some_group3:r-x
group:some_group4:r-x
mask::rwx
other::---
default:user::rwx
default:user:some_group1:r-x
default:group::---
default:group:some_group2:rwx
default:group:hive:rwx
default:group:some_group3:r-x
default:group:some_group4:r-x
default:mask::rwx
default:other::---
# file: /dir2/subdir1/table1
# owner: some_user
# group: supergroup
user::rwx
user:some_group1:r-x
group::---
group:some_group2:rwx
group:user_group:rwx
group:hive:rwx
group:some_group3:r-x
group:some_group4:rwx
mask::rwx
other::---
default:user::rwx
default:user:some_group1:r-x
default:group::---
default:group:some_group2:rwx
default:group:user_group:rwx
default:group:hive:rwx
default:group:some_group3:r-x
default:group:some_group4:rwx
default:mask::rwx
default:other::---
【问题讨论】:
-
您可以试试
hdfs dfs -getfacl -R /dir2并检查权限吗? -
我已更新问题以包含权限现在的样子
标签: hadoop hive permissions hdfs cloudera