使用systemctl命令确认NameNode、DataNode等核心服务是否正常运行。例如:
systemctl status hadoop-hdfs-namenode # 检查NameNode状态
systemctl status hadoop-hdfs-datanode # 检查DataNode状态
若服务未启动,可通过systemctl start hadoop-hdfs-namenode启动对应服务。
HDFS日志是故障排查的核心依据,主要日志路径及查看方式:
/var/log/hadoop-hdfs/hadoop-<username>-namenode-<hostname>.log/var/log/hadoop-hdfs/hadoop-<username>-datanode-<hostname>.logtail -f实时监控日志中的ERROR或WARN信息(如磁盘满、权限问题、网络超时):tail -f /var/log/hadoop-hdfs/hadoop-<username>-namenode-<hostname>.log
日志中会明确提示故障原因(如“Disk full”“Connection refused”)。
HDFS集群节点间需通过网络通信,需检查:
ping命令测试NameNode与DataNode之间的网络是否可达(如ping <datanode_ip>)。traceroute命令排查网络路径中的故障节点(如traceroute <datanode_ip>)。firewall-cmd --add-port=50010/tcp --permanent # 开放DataNode端口
firewall-cmd --reload # 重新加载防火墙规则
```。
核心配置文件(hdfs-site.xml、core-site.xml)的错误会导致服务异常,需重点核对以下配置项:
fs.defaultFS:HDFS的默认文件系统URI(如hdfs://namenode_hostname:9000)。dfs.namenode.rpc-address:NameNode的RPC地址(如namenode_hostname:9000)。dfs.datanode.data.dir:DataNode数据存储路径(如/data/hadoop/datanode)。dfs.namenode.http-address:NameNode的HTTP地址(如namenode_hostname:50070)。HDFS提供丰富的命令行工具,用于快速诊断集群状态:
hdfs dfsadmin -report,可获取DataNode数量、数据块数量、副本率等信息。hdfs fsck /path -files -blocks -locations,扫描指定路径下的文件块是否损坏或缺失(如hdfs fsck / -delete可删除损坏文件,需谨慎操作)。hdfs dfs -ls /path/to/directory,确认文件是否存在或权限是否正确。df -h命令检查DataNode存储路径的磁盘使用率(如/data/hadoop/datanode),若使用率超过90%,需清理无用文件(如/tmp目录下的临时文件)。ls -l /data/hadoop/datanode),若权限不足,可通过chown修改属主(如chown -R hadoop:hadoop /data/hadoop/datanode)或chmod修改权限(如chmod -R 755 /data/hadoop/datanode)。hdfs dfsadmin -safemode leave命令强制退出。DISK_ERROR)、版本不一致(INVALID_VERSION)、磁盘空间不足(NO_SPACE_LEFT),需对应修复(如清理磁盘、统一Hadoop版本)。hdfs dfsadmin -printTopology查看拓扑结构,确保节点与机架配置一致。