在 Linux 上修改 HDFS 权限,通常可以从 HDFS 文件系统权限 和 Linux 系统用户/组 两个层面来理解。下面按常见场景说明。
hdfs dfs -chmod 755 /user/hadoop/test
或递归修改:
hdfs dfs -chmod -R 755 /user/hadoop
hdfs dfs -chown hadoop:hadoop /user/hadoop/test
递归:
hdfs dfs -chown -R hadoop:hadoop /user/hadoop
hdfs dfs -chgrp hadoop /user/hadoop/test
HDFS 权限和 Linux 类似:
rwx rwx rwx
用户 组 其他
示例:
hdfs dfs -ls /user/hadoop
输出:
drwxr-xr-x - hadoop hadoop 0 2024-01-01 /user/hadoop
HDFS 权限基于 提交命令的 Linux 用户。
例如:
su hadoop
hdfs dfs -put file.txt /user/hadoop/
如果你是 root,但 HDFS 不允许 root:
<!-- hdfs-site.xml -->
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
⚠️ 生产环境不建议
hdfs-site.xml
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
重启 NameNode。
hdfs dfsadmin -setPermissionCheck false
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
hdfs dfs -setfacl -m user:alice:rwx /user/hadoop/test
hdfs dfs -getfacl /user/hadoop/test
原因:
解决:
hdfs dfs -chown 你用户名 /目标目录
或切换到有权限用户。
如果你能告诉我:
我可以直接给你具体命令。