在 CentOS 中使用 HDFS(Hadoop 分布式文件系统)进行权限管理,主要涉及 HDFS 自身的权限模型、Linux 用户/用户组映射、以及 常见管理方式。下面从基础到实践系统说明。
HDFS 的权限模型类似 Linux 文件系统:
rwx
r = 读
w = 写
x = 执行(对目录表示可进入)
示例:
drwxr-xr-x - hadoop supergroup 0 2024-01-01 /user/hadoop
表示:
⚠️ 重要原则:
HDFS 不存储密码,它信任客户端声明的用户身份
在 CentOS 中:
hdfs 命令的 Linux 用户hadoop 用户在 CentOS 存在,HDFS 就认为你是 hadoop示例:
su - hadoop
hdfs dfs -ls /
此时 HDFS 认为你是 hadoop
hdfs dfs -ls /user
hdfs dfs -chmod 755 /user/hadoop
hdfs dfs -chmod -R 700 /data
hdfs dfs -chown hadoop:supergroup /user/hadoop
hdfs dfs -chgrp dev /user/hadoop
hdfs-site.xml:
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
hdfs示例:
su - hdfs
hdfs dfs -chmod 777 /tmp
useradd hadoop
passwd hadoop
groupadd data team
usermod -aG data hadoop
HDFS 直接使用这些 Linux 用户和组
/user/hadoop # 用户主目录
/data/raw # 原始数据(只读给分析组)
/data/result # 结果数据
权限示例:
hdfs dfs -mkdir /data/raw
hdfs dfs -chown hadoop:analyst /data/raw
hdfs dfs -chmod 750 /data/raw
如果开启 Kerberos:
kinit hadoop
hdfs dfs -ls /
原因:
解决:
whoami
hdfs dfs -ls /user
hdfs 或对应业务用户✅ HDFS 权限 = Linux 权限模型
✅ CentOS 用户 = HDFS 用户
✅ 用 chmod / chown / chgrp 管理
✅ 超级用户是 NameNode 启动用户
✅ 企业环境建议 Kerberos
如果你需要:
hdfs-site.xml 配置可以继续问,我可以按你的集群环境给你一套方案。