在 Linux 上排查 HDFS 配置问题,一般按「配置 → 进程 → 日志 → 网络 → 权限」的顺序来。下面给你一套实用排查清单。
HDFS 核心配置通常在:
$HADOOP_HOME/etc/hadoop/
重点文件:
core-site.xmlhdfs-site.xmlhadoop-env.shworkers(或 slaves)<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
✅ 确认:
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/datanode</value>
</property>
✅ 注意:
echo $HADOOP_HOME
echo $JAVA_HOME
确认:
hadoop-env.sh 中 JAVA_HOME 正确jps
应看到:
❌ 少了谁,就查谁的日志
日志目录:
$HADOOP_HOME/logs/
常用命令:
tail -n 200 hadoop-*-namenode-*.log
tail -n 200 hadoop-*-datanode-*.log
Incompatible clusterIDs → 格式化不一致Directory does not exist → 目录权限问题Connection refused → 网络/端口问题hdfs dfs -ls /
或
hdfs dfsadmin -report
❌ 报错多为:
ping namenode
telnet namenode 9000
或
ss -lntp | grep 9000
关闭防火墙(测试用):
systemctl stop firewalld
ls -ld /data/hadoop
修复:
chown -R hadoop:hadoop /data/hadoop
⚠️ 只在 NameNode 格式化一次
hdfs namenode -format
格式化后 DataNode 要清空数据目录,否则 clusterID 不一致
jps
hdfs dfsadmin -report
hdfs haadmin -getServiceState nn1
tail -f $HADOOP_HOME/logs/*.log
如果你愿意,可以把具体报错日志 / 配置文件内容贴出来,我可以直接帮你定位是哪一步配置错了。