日志是故障定位的核心依据,需优先收集系统日志与Hadoop组件日志:
tail -f /var/log/syslog实时查看系统级错误(如内核 panic、磁盘故障);通过dmesg或journalctl -xe获取更详细的硬件/内核级日志。$HADOOP_HOME/logs目录下(如NameNode日志为hadoop-*-namenode-*.log、DataNode日志为hadoop-*-datanode-*.log)。使用tail -f *.log实时监控所有日志,或grep "ERROR" *.log过滤错误信息,快速定位具体组件问题。HDFS依赖NameNode、DataNode、SecondaryNameNode等核心进程,需确保其正常运行:
jps命令列出所有Java进程,确认上述核心进程是否存在。若缺失,需重启对应服务(如hadoop-daemon.sh start namenode)。systemctl status hadoop-namenode(或对应服务名)查看服务运行状态,若异常则重启(systemctl restart hadoop-namenode)。HDFS集群节点间需通过网络通信,网络问题是常见故障诱因:
ping <目标IP>测试集群内所有节点(如NameNode与DataNode之间)的网络连通性。netstat -tulnp或ss -tulnp查看Hadoop服务监听的端口(如NameNode默认端口50070、DataNode默认端口50010),确认端口处于监听状态且未被防火墙拦截。/etc/hosts文件,确保集群节点的主机名与IP地址映射正确,避免DNS解析失败。Hadoop配置文件错误(如路径、参数配置不当)会导致服务无法启动或运行异常:
core-site.xml(HDFS核心配置,如fs.defaultFS指定NameNode地址)、hdfs-site.xml(HDFS参数,如dfs.replication副本数、dfs.namenode.name.dir元数据存储路径)、mapred-site.xml(MapReduce配置,如mapreduce.framework.name指定YARN)等文件。HADOOP_HOME(Hadoop安装目录)、JAVA_HOME(JDK安装目录)等环境变量已正确设置(通过echo $HADOOP_HOME验证)。资源不足(CPU、内存、磁盘)会导致HDFS进程崩溃或性能下降:
top命令查看系统整体资源占用(按M排序内存、P排序CPU),或htop(更直观的交互式工具);使用df -h查看磁盘空间使用情况(重点关注HDFS数据目录所在分区,如/data)。iostat -x 1(磁盘I/O)、vmstat 1(内存/CPU)等工具查看资源使用趋势,识别瓶颈(如磁盘I/O过高可能是小文件过多导致)。针对HDFS常见故障,需采取针对性措施:
fsimage和edits文件(位于dfs.name.dir目录);若元数据完全丢失,需重新格式化集群(hadoop namenode -format,注意此操作会清空所有数据)。stop-all.sh),更换故障磁盘后重新挂载(mount /dev/sdb1 /data),更新dfs.datanode.data.dir配置(添加新磁盘路径),并重启DataNode。hdfs dfsadmin -metasave filename查看)或活跃DataNode数量(hdfs dfsadmin -report)。若副本不足,可通过hdfs balancer -threshold 10均衡数据分布;若DataNode数量足够,强制退出安全模式(hdfs dfsadmin -safemode leave)。hdfs fsck / -list-corruptfileblocks列出损坏的块,删除损坏块(hdfs fsck / -delete),并通过hdfs dfsadmin -restoreFailedStorage true修复失败的存储目录。以上方法覆盖了Debian环境下HDFS故障的主要排查方向,需根据具体错误信息逐步排查。操作前建议备份重要数据(如/data目录),避免误操作导致数据丢失。