在 CentOS 上“权限 HDFS”通常有几种常见含义,我先按最常见场景给你说明,你可以对照自己的需求:
which hdfs
如果没有,需要安装 Hadoop 客户端或配置 HADOOP_HOME。
HDFS 默认使用 Linux 用户名 作为 HDFS 用户:
hdfs dfs -ls /
如果报权限错误:
Permission denied: user=xxx, access=READ, inode="/"
说明当前 Linux 用户没有 HDFS 权限。
hdfs dfs -ls /user
hdfs dfs -chmod 755 /user/hadoop
hdfs dfs -chown hadoop:hadoop /user/hadoop
hdfs dfs -chmod -R 755 /user/hadoop
hdfs dfs -chown -R hadoop:hadoop /user/hadoop
如果你只是测试环境:
hdfs-site.xml<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
然后重启 NameNode:
stop-dfs.sh
start-dfs.sh
如果你是 root,但 HDFS 拒绝你:
sudo -u hdfs hdfs dfs -chmod 777 /user
| 错误 | 原因 | 解决 |
|---|---|---|
| Permission denied | 用户无权限 | chown / chmod |
| user=root not allowed | HDFS 不认 root | 用 hdfs 用户 |
ls: /: No such file |
路径错误 | 用 /user |
比如:
chmod 600 /path/to/hdfs-site.xml
chown hadoop:hadoop /path/to/hadoop/*
如果你能补充一句:
我可以直接给你精确命令。