你在 CentOS 上执行 HDFS 相关命令时报错,原因可能有很多。下面我按最常见的情况给你梳理一下,你可以对照看看是哪一种。
报错类似:
-bash: hdfs: command not found
✅ 原因:
✅ 解决:
which hadoop
echo $HADOOP_HOME
如果为空:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(写进 ~/.bashrc 更稳妥)
报错类似:
Error: JAVA_HOME is not set
✅ 解决:
java -version
如果没有 Java:
yum install -y java-1.8.0-openjdk
配置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
报错类似:
Call From xxx to namenode:9000 failed on connection exception
✅ 检查:
jps
应看到:
✅ 启动:
start-dfs.sh
CentOS 特有坑 ⚠️
systemctl status firewalld
getenforce
✅ 临时关闭测试:
systemctl stop firewalld
setenforce 0
报错:
UnknownHostException
✅ 检查:
cat /etc/hosts
hostname
确保:
192.168.1.10 hadoop01
报错:
Permission denied: user=root, access=WRITE
✅ 解决:
hdfs dfs -chmod -R 777 /
或改用普通用户运行 HDFS
如果你愿意,直接把完整报错信息发我,比如:
hdfs dfs -ls /
报错内容:
xxxxxx
我可以精准告诉你是哪一步错了,怎么改。
如果你是在 CentOS 7 / 8 / Stream,或者是 单机 / 集群,也可以告诉我,我给你对应方案。