Linux 下 HDFS 配置失败的原因非常多,常见情况可以归为以下几类。你可以对照排查,也可以把具体报错信息发出来,我帮你精确定位。
HDFS 依赖 Java:
java -version
JAVA_HOME检查:
echo $JAVA_HOME
若为空,在 ~/.bashrc 或 hadoop-env.sh 中配置:
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
HDFS 启动依赖 SSH:
ssh localhost
若需要密码,说明没配置免密:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.authorized_keys
core-site.xml 配置错误典型错误:
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
常见坑:
localhost 最稳妥)hdfs-site.xml 配置错误例如:
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/namenode</value>
</property>
问题:
修复:
mkdir -p /opt/hadoop/data/namenode
chown -R hadoop:hadoop /opt/hadoop
第一次启动前必须执行:
hdfs namenode -format
否则会直接失败。
⚠️ 注意:重复格式化会导致 DataNode 无法启动
Hadoop 不建议用 root
建议:
useradd hadoop
su - hadoop
systemctl stop firewalld
setenforce 0
netstat -tunlp | grep 9000
若被占用,修改 core-site.xml 端口。
看日志比猜重要 100 倍:
cat $HADOOP_HOME/logs/hadoop-*-namenode-*.log
cat $HADOOP_HOME/logs/hadoop-*-datanode-*.log
如果你愿意,可以把下面信息发我,我可以直接帮你定位:
core-site.xml / hdfs-site.xml 内容我可以直接帮你改到能跑 ✅