在 CentOS 上配置 HDFS 权限,一般涉及 Linux 用户/用户组、HDFS 目录权限、HDFS 权限模式 三个方面。下面按常见场景一步步说明。
HDFS 权限模型类似 Linux:
HDFS 里的用户和组 来自 Linux 用户体系(除非启用 Kerberos)。
groupadd hdfsuser
useradd -g hdfsuser hdfsuser
su - hdfsuser
hdfs-site.xml
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
如果为 false,HDFS 不做权限校验(不推荐生产环境)
hdfs dfs -ls /user
hdfs dfs -chown hdfsuser:hdfsuser /user/hdfsuser
hdfs dfs -chmod 750 /user/hdfsuser
示例含义:
hdfs dfs -chgrp hdfsuser /data
hdfs dfs -mkdir /user/hdfsuser
hdfs dfs -chown hdfsuser:hdfsuser /user/hdfsuser
hdfs dfs -chmod 700 /user/hdfsuser
groupadd dataTeam
useradd -G dataTeam user1
useradd -G dataTeam user2
hdfs dfs -mkdir /data/share
hdfs dfs -chgrp dataTeam /data/share
hdfs dfs -chmod 770 /data/share
hdfs dfs -mkdir /public
hdfs dfs -chmod 755 /public
hdfs dfs -chmod 1777 /tmp
hdfs dfs -setfacl -m user:hdfsuser:rwx /data
hdfs dfs -setfacl -m default:user:hdfsuser:rwx /data
查看:
hdfs dfs -getfacl /data
✅ 解决:
whoami
hdfs dfs -ls /user
HDFS 不认 root ✅ 用 hdfs 用户或授权用户操作
dfs.permissions.enabled=truechmod 777如果你能告诉我:
我可以给你更精确的配置示例。