在 Linux 上排查 HDFS(Hadoop Distributed File System)配置问题,一般可以按「由下到上」的思路来:先系统/网络 → 再 Hadoop 配置 → 再服务状态 → 最后日志分析。
下面给你一套实用排错清单。
HDFS 对主机名非常敏感。
hostname
cat /etc/hosts
确保:
/etc/hosts 中 不要写 127.0.0.1 对应真实主机名示例:
192.168.1.10 namenode
192.168.1.11 datanode1
ssh datanode1
如果不通:
ssh-keygen
ssh-copy-id datanode1
java -version
echo $JAVA_HOME
Hadoop 对 Java 版本有要求(如 Hadoop 3.x 推荐 JDK 8/11)
echo $HADOOP_HOME
echo $HADOOP_CONF_DIR
常见错误:
HADOOP_HOME 没配重点文件(一般在 $HADOOP_HOME/etc/hadoop/):
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
✅ 主机名必须能被解析
❌ 不要用 localhost(集群环境)
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/data</value>
</property>
检查:
hadoop 用户)ls -ld /data/hadoop/name
cat $HADOOP_CONF_DIR/workers
必须包含 DataNode 主机名
start-dfs.sh
或分开:
hdfs --daemon start namenode
hdfs --daemon start datanode
jps
正常应有:
$HADOOP_HOME/logs/
重点文件:
hadoop-*-namenode-*.loghadoop-*-datanode-*.log常见错误关键词:
BindException → 端口冲突Connection refused → 网络/防火墙Directory not found → 路径配置错Permission denied → 用户权限错可能原因:
dfs.datanode.data.dir 不存在解决:
cat /data/hadoop/name/current/VERSION
cat /data/hadoop/data/current/VERSION
不一致 → 删除 DataNode 数据目录重新注册
hdfs namenode -format
注意:
systemctl stop firewalld
或开放端口:
ping namenode
ssh datanode1
jps
hdfs dfsadmin -report
hdfs fsck /
tail -f $HADOOP_HOME/logs/*.log
如果你愿意,可以:
core-site.xml / hdfs-site.xml我可以帮你 精准定位问题。