温馨提示×

centos怎么设置hdfs权限

小樊
47
2026-08-20 05:46:19
栏目: 智能运维

CentOS 上设置 HDFS 权限,通常涉及 HDFS 自身的权限模型Linux 用户/组映射 两个方面。下面按常见场景给你一个完整说明。


一、HDFS 权限模型简介

HDFS 权限与 Linux 类似,分为:

  • 用户(owner)
  • 用户组(group)
  • 其他人(others)

权限类型:

  • r(读)
  • w(写)
  • x(执行,目录有效)

示例:

drwxr-xr-x   - hdfs supergroup          0 2024-01-01 /data

二、前提条件(非常重要)

  1. HDFS 已启动
systemctl status hadoop-hdfs-namenode
systemctl status hadoop-hdfs-datanode
  1. 使用 hdfs 用户操作(推荐)
su - hdfs

或:

sudo -u hdfs hdfs dfs -ls /

三、常用 HDFS 权限设置命令

1️⃣ 修改目录/文件权限(chmod)

hdfs dfs -chmod 755 /data
hdfs dfs -chmod -R 755 /data

示例:

hdfs dfs -chmod 777 /tmp

2️⃣ 修改所有者(chown)

hdfs dfs -chown user:group /data
hdfs dfs -chown -R user:group /data

示例:

hdfs dfs -chown hive:hive /user/hive

3️⃣ 修改用户组(chgrp)

hdfs dfs -chgrp supergroup /data
hdfs dfs -chgrp -R supergroup /data

四、CentOS 用户与 HDFS 用户的关系

HDFS 的用户和组名来自 Linux 用户

例:

useradd bigdata
groupadd bigdata
usermod -aG bigdata bigdata

然后 HDFS 才能识别该用户:

hdfs dfs -chown bigdata:bigdata /user/bigdata

⚠️ 如果 HDFS 启用了权限检查,而 Linux 用户不存在,会报错:

Permission denied

五、HDFS 权限检查开关(常见坑)

查看是否开启权限检查

hdfs dfsadmin -getDfsQuota /user

或查看配置文件:

vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

关键配置:

<property>
  <name>dfs.permissions.enabled</name>
  <value>true</value>
</property>

临时关闭权限(不推荐生产环境)

<property>
  <name>dfs.permissions.enabled</name>
  <value>false</value>
</property>

然后重启 HDFS:

stop-dfs.sh
start-dfs.sh

六、HDFS 默认权限(umask)

控制新建文件/目录的默认权限:

<property>
  <name>fs.permissions.umask-mode</name>
  <value>022</value>
</property>

解释:

  • 022 → 新建目录 755
  • 027 → 新建目录 750

七、ACL 权限(高级用法)

启用 ACL(hdfs-site.xml)

<property>
  <name>dfs.namenode.acls.enabled</name>
  <value>true</value>
</property>

设置 ACL

hdfs dfs -setfacl -m user:alice:rwx /data
hdfs dfs -setfacl -m group:dev:r-x /data

查看 ACL

hdfs dfs -getfacl /data

八、典型示例:为某个用户开放 HDFS 目录

# 创建 Linux 用户
useradd sparkuser

# 创建 HDFS 目录
hdfs dfs -mkdir /user/sparkuser
hdfs dfs -chown -R sparkuser:sparkuser /user/sparkuser
hdfs dfs -chmod 750 /user/sparkuser

九、排查权限问题常用命令

hdfs dfs -ls /user
whoami
hdfs dfs -getfacl /user/hive

十、总结速查表

操作 命令
修改权限 hdfs dfs -chmod
修改用户 hdfs dfs -chown
修改组 hdfs dfs -chgrp
设置 ACL hdfs dfs -setfacl
查看 ACL hdfs dfs -getfacl
关闭权限 dfs.permissions.enabled=false

如果你愿意,可以告诉我:

  • 你是 HDP / CDH / Apache Hadoop?
  • 具体报错信息
  • 要开放给哪个用户/服务

我可以帮你给出精确到你环境的配置方案

0