CentOS 上配置 HDFS 权限管理
一 基础准备与核心概念
二 启用权限与 ACL 的关键配置
<!-- core-site.xml -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode.example.com:8020</value>
</property>
<property>
<name>hadoop.security.authentication</name>
<value>simple</value> <!-- 如需 Kerberos,改为 kerberos 并配置相关 principal/keytab -->
</property>
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
<property>
<name>dfs.web.ugi</name>
<value>webuser,webgroup</value> <!-- Web UI 使用的身份,避免暴露为超级用户 -->
</property>
</configuration>
<!-- hdfs-site.xml -->
<configuration>
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>supergroup</value> <!-- 指定超级用户组 -->
</property>
<property>
<name>fs.permissions.umask-mode</name>
<value>0022</value>
</property>
<property>
<name>dfs.cluster.administrators</name>
<value>hdfs,admin</value> <!-- 集群管理员 ACL -->
</property>
</configuration>
三 用户与目录初始化及常用命令
sudo groupadd hadoop
sudo useradd -g hadoop hadoop
hdfs dfs -mkdir -p /user/hadoop
hdfs dfs -chown hadoop:hadoop /user/hadoop
hdfs dfs -chmod 755 /user/hadoop
# 修改权限
hdfs dfs -chmod 644 /user/hadoop/file.txt
hdfs dfs -chmod 755 /user/hadoop/dir
# 修改属主属组
hdfs dfs -chown alice:hadoop /user/hadoop/file.txt
# 查看 ACL
hdfs dfs -getfacl /user/hadoop
# 设置 ACL(精确授权)
hdfs dfs -setfacl -m user:bob:rwx /user/hadoop
hdfs dfs -setfacl -m group:dev:r-x /user/hadoop
# 对目录设置默认 ACL,子项自动继承
hdfs dfs -setfacl -m default:user:carol:rwx /user/hadoop/project
四 代理用户与 Web 安全
<property>
<name>hadoop.proxyuser.hive.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hive.groups</name>
<value>*</value>
</property>
五 生效验证与常见问题
# 如使用 systemd
sudo systemctl restart hadoop-hdfs-namenode
sudo systemctl restart hadoop-hdfs-datanode
# 如使用 Hadoop 脚本
stop-dfs.sh && start-dfs.sh
hdfs dfs -ls /user/hadoop,确认 r-x 权限生效。kinit 获取票据、keytab 正确、时间同步、principal/realm 配置无误。