在 Linux 上配置 HDFS 权限,通常包含两部分:
下面按常见场景说明。
HDFS 权限与 Linux 类似:
drwxr-xr-x user group
d 目录,- 文件)r(读)w(写)x(执行,目录表示可进入)hdfs-site.xml:
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
开发环境可临时设为
false(不推荐生产)
HDFS 不会自己认证用户,而是信任:
例如:
whoami
# 输出 hadoop
那么 HDFS 中就以 hadoop 用户访问。
hdfs dfs -ls /user
hdfs dfs -chown hadoop:hadoop /user/hadoop
hdfs dfs -chmod 755 /user/hadoop
hdfs dfs -chgrp hadoop /data
/user/hadoop hdfs:hadoop 755
/tmp hdfs:hadoop 1777
/data hdfs:data 770
hdfs-site.xml:
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
hdfs dfs -setfacl -m user:alice:rwx /data
hdfs dfs -getfacl /data
默认:
hdfs)sudo -u hdfs hdfs dfs -chmod 700 /secure
原因:
解决:
sudo -u hdfs hdfs dfs -chown you:you /your/path
hdfs dfs -mkdir /user/you
hdfs dfs -chown you:you /user/you
生产环境建议:
如果你愿意,可以告诉我:
我可以直接给你一份可复制的配置和命令。