在 CentOS 上检查 HDFS(Hadoop Distributed File System) 是否正常,一般从 服务状态、HDFS 本身状态、磁盘与日志 几个方面入手。下面按常见场景给你一套完整检查方法。
systemctl status hadoop-namenode
systemctl status hadoop-datanode
systemctl status hadoop-secondarynamenode
如未注册,一般使用 Hadoop 自带脚本。
hdfs dfsadmin -report
✅ 正常输出示例:
❌ 若无输出或报错,说明 HDFS 有问题
jps
✅ 正常应看到:
❌ 缺少进程说明服务未启动
hdfs dfs -ls /
✅ 能列出目录说明 HDFS 正常
❌ 报错如 Connection refused 说明 NameNode 未启动
hdfs fsck / -files -blocks -locations
用于检查:
cd $HADOOP_HOME/logs
ls
重点查看:
hadoop-*-namenode-*.loghadoop-*-datanode-*.logtail -n 100 hadoop-root-namenode-*.log
常见错误:
java.io.IOExceptionDisk fullPermission deniedIncompatible cluster IDsss -lntp | grep 9870
或(老版本)
ss -lntp | grep 50070
ss -lntp | grep 9864
如果端口未监听,说明服务未启动。
df -h
⚠️ 如果 NameNode 或 DataNode 数据目录所在磁盘满了,HDFS 会直接不可用。
HDFS 数据目录一般在:
$HADOOP_HOME/data
或
/tmp/hadoop-*
$HADOOP_HOME/etc/hadoop/
重点检查:
core-site.xmlhdfs-site.xml例如:
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
| 现象 | 原因 |
|---|---|
| jps 没有 NameNode | 未启动或配置错误 |
| hdfs dfs -ls 报错 | NameNode 未运行 |
| DataNode 启动后立即消失 | 集群 ID 不一致 |
| HDFS 只读 | NameNode 进入 SafeMode |
| 磁盘满 | DataNode 停止 |
hdfs dfsadmin -safemode leave
jps
hdfs dfsadmin -report
hdfs dfs -ls /
df -h
如果你愿意,可以告诉我:
我可以帮你精确定位问题 ✅