作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:
Web服务器
代理服务器
ZooKeeper
Kafka
RabbitMQ
Hadoop HDFS(本章节)
我们上个小节介绍了回收站的功能,在里面提到一个用户的概念,这个概念在回收站里面其实就是涉及到一个目录问题。
比如下面的root目录,就是用户目录。
[root@node1 ~]# hdfs dfs -ls /user/root/.Trash/Current/test2
Found 1 items
-rw-r--r-- 3 root supergroup 13368512 2025-07-18 00:52 /user/root/.Trash/Current/test2/apache-zookeeper-3.8.1-bin.tar.gz
[root@node1 ~]#
下面的文件权限和我们Linux权限是类似的,我们来介绍下这个权限
权限解析(-rw-r--r--
):这里定义的所有者具有读写权限,组用户具有读权限,其他用户权限也是具有读权限
root supergroup:这里的root,就是所有者,supergroup则是
这里使用普通用户向root用户下的目录上传文件就被提示没有权限
[abcd@node1 bin]$ ./hadoop fs -ls /
Found 4 items
drwxr-xr-x - root supergroup 0 2025-07-18 00:57 /test1
drwxr-xr-x - root supergroup 0 2025-07-18 00:53 /test2
drwxr-xr-x - root supergroup 0 2025-07-11 01:06 /test3
drwx------ - root supergroup 0 2025-07-18 00:53 /user
[abcd@node1 bin]$ ./hadoop fs -put hdfs.cmd /test3/
put: Permission denied: user=abcd, access=WRITE, inode="/test3":root:supergroup:drwxr-xr-x
[abcd@node1 bin]$
上面的内容就是这个HDFS权限的基本介绍,下面我们就来介绍这个HDFS的基本权限。
HDFS 用户是文件操作的身份载体,通过 Linux 系统用户、Kerberos 凭证或 SDK 显式指定的身份,决定文件权限归属、回收站隔离、存储配额分配及审计追踪的主体。
维度 | 影响范围 | 典型场景 |
---|---|---|
权限控制 | 文件读写/删除权限 | -rw-r--r-- alice supergroup /data |
资源隔离 | 专属目录 (/user/alice) | 用户只能访问自己的 Home 目录 |
回收站隔离 | 独立回收站路径 | 用户 A 删除的文件不会出现在用户 B 的回收站 |
配额管理 | 用户级存储/命名空间配额 | hdfs dfsadmin -setSpaceQuota 1T /user/alice |
操作入口 | 用户确定逻辑 | 示例 |
---|---|---|
Shell 命令 | 当前 Linux 系统用户 | sudo -u alice hdfs dfs -rm → 用户=alice |
Web UI / HttpFS | HTTP 认证头部 (Kerberos/Token) | 浏览器登录用户身份 |
Java SDK | UserGroupInformation 指定 | UGI.createRemoteUser("alice") |
Python SDK | 连接参数 user='alice' | HDFileSystem(user="alice") |
其他大数据组件用户
服务 | 推荐用户 | 目录 | 用途 |
---|---|---|---|
HDFS | hdfs | /user/hdfs | 系统管理操作 |
YARN | yarn | /user/yarn | 作业历史存储 |
Hive | hive | /user/hive | 数据仓库存储 |
Spark | spark | /user/spark | 应用日志存储 |