在 CentOS 上运行 HDFS 报错 的原因非常多,通常和 环境配置、权限、Java、网络、端口、SELinux、防火墙 等有关。下面按最常见原因 + 排查方法给你一个实用清单,你可以对照看是哪一类。
HDFS 强依赖 JDK。
检查:
java -version
echo $JAVA_HOME
✅ 要求:
JAVA_HOME 必须配置正确错误示例:
Error: JAVA_HOME is not set
解决:
export JAVA_HOME=/usr/java/jdk1.8.0_XXX
HDFS 不建议用 root 启动
报错常见:
Cannot create directory /tmp/hadoop-xxx
Permission denied
解决:
useradd hadoop
su - hadoop
或者确保数据目录属主正确:
chown -R hadoop:hadoop /data/hadoop
第一次启动必须格式化:
hdfs namenode -format
错误示例:
NameNode is not formatted
⚠️ 注意:格式化会清空元数据,只在第一次做
CentOS 默认开防火墙和 SELinux。
关闭防火墙(测试环境):
systemctl stop firewalld
systemctl disable firewalld
关闭 SELinux:
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
HDFS 对 hostname 非常敏感。
检查:
hostname
cat /etc/hosts
✅ 必须有:
127.0.0.1 localhost
192.168.1.10 node1
典型报错:
Unable to resolve host
Call to node1/192.168.1.10:9000 failed
常见端口:
netstat -tunlp | grep 9000
重点文件:
core-site.xmlhdfs-site.xml常见错误:
tail -200 $HADOOP_HOME/logs/hadoop-*-namenode-*.log
tail -200 $HADOOP_HOME/logs/hadoop-*-datanode-*.log
hdfs namenode
hdfs datanode
你可以把 具体报错内容 贴出来,比如:
core-site.xml / hdfs-site.xml我可以直接告诉你 是哪一行配置或环境导致的问题。