在 Linux 上配置 HDFS 权限,通常涉及 Linux 用户/用户组、HDFS 自身权限模型 和 相关配置文件。下面按常见场景给你讲清楚。
HDFS 权限和 Linux 类似:
r(读)、w(写)、x(执行,目录表示可进入)示例:
drwxr-xr-x - hadoop hadoop 0 2024-01-01 /user/hadoop
groupadd hadoop
useradd -g hadoop hdfs
useradd -g hadoop yarn
useradd -g hadoop mapred
hdfs 用户启动chown -R hdfs:hadoop /data/hadoop
chmod 755 /data/hadoop
hdfs-site.xml
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
hdfs-site.xml
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value>
</property>
属于
hadoop组的用户就是 HDFS 超级用户
core-site.xml
<property>
<name>hadoop.proxyuser.hdfs.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hdfs.groups</name>
<value>*</value>
</property>
hdfs dfs -ls /user
hdfs dfs -chown hdfs:hadoop /user/hdfs
hdfs dfs -chmod 755 /user/hdfs
hdfs dfs -chgrp hadoop /user/hdfs
原因:
解决:
hdfs dfs -chmod 777 /tmp # 临时测试
# 或正确设置用户
hdfs dfs -chown user:group /user/user
HDFS 不认 Linux root,只认配置的用户
解决:
sudo -u hdfs hdfs dfs -mkdir /test
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
⚠️ 生产环境不建议
如果你愿意,可以告诉我:
我可以给你一份 直接可抄的配置。