在 Linux 环境下使用 HDFS(Hadoop Distributed File System) 进行权限管理,核心思路和 Linux 文件权限类似,但又有分布式系统的特点。下面从概念 → 常用命令 → 管理实践系统说明。
HDFS 权限模型与 Linux 类似:
每个文件/目录有:
rwx rwx rwx
u g o
hdfs)在 hdfs-site.xml 中:
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
若为
false,HDFS 不做权限校验(不推荐生产环境)
hdfs dfs -ls /user
示例输出:
drwxr-xr-x - hadoop supergroup 0 2024-01-01 /user/hadoop
字段含义:
drwxr-xr-x:权限hadoop:ownersupergroup:grouphdfs dfs -chmod 755 /user/hadoop
hdfs dfs -chmod -R 700 /data
-R:递归hdfs dfs -chown hadoop:supergroup /user/hadoop
hdfs dfs -chown -R newuser:newgroup /data
只有超级用户能改 owner
hdfs dfs -chgrp dev /user/hadoop
HDFS 支持 ACL(Access Control List)
hdfs-site.xml
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
hdfs dfs -getfacl /data
hdfs dfs -setfacl -m user:alice:rwx /data
hdfs dfs -setfacl -m group:dev:r-x /data
hdfs dfs -setfacl -x user:alice /data
Linux 用户一致
useradd hadoop
su hadoop
hdfs dfs -put file /
Kerberos(企业级)
hdfs dfs -mkdir /user/alice
hdfs dfs -chown alice:alice /user/alice
hdfs dfs -chmod 700 /user/alice
hdfs dfs -mkdir /share
hdfs dfs -chown hdfs:analyst /share
hdfs dfs -chmod 770 /share
hdfs dfs -chmod 555 /important
原因:
解决:
hdfs dfs -chmod /path
hdfs dfs -chown user:group /path
hdfs 或对应 Linux 用户| 功能 | 命令 |
|---|---|
| 查看权限 | hdfs dfs -ls |
| 修改权限 | hdfs dfs -chmod |
| 修改属主 | hdfs dfs -chown |
| 修改组 | hdfs dfs -chgrp |
| 精细权限 | setfacl / getfacl |
如果你有 具体场景(如:多用户共享、安全集群、Kerberos、Yarn 提交权限),我可以直接给你一套可落地的权限方案。