Hadoop的日志文件是故障排查的核心依据,所有组件的错误信息均会记录在HADOOP_HOME/logs目录下(如NameNode.log、DataNode.log、ResourceManager.log)。使用以下命令实时监控或搜索错误信息:
tail -f HADOOP_HOME/logs/*.log # 实时查看所有日志 grep "ERROR" HADOOP_HOME/logs/*.log # 筛选错误信息 通过日志中的关键词(如ConnectException、OutOfMemoryError、SafeModeException)可快速定位故障类型。
使用jps命令查看Hadoop核心进程是否正常运行(如NameNode、DataNode、ResourceManager、NodeManager)。若缺失关键进程,需检查对应服务的启动脚本或日志:
jps # 正常应显示上述进程 若进程未启动,尝试手动启动对应服务(如hadoop-daemon.sh start namenode),并观察日志确认启动失败原因。
Hadoop集群依赖节点间的网络通信,需确保:
ping命令测试集群内所有节点的IP连通性(如ping <datanode-ip>);/etc/hosts文件,确保每台节点的IP与主机名一一对应(如192.168.1.10 master、192.168.1.11 slave1),避免因主机名解析失败导致连接异常。Hadoop的配置文件(core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml)是集群运行的基础,常见错误包括:
core-site.xml中的fs.defaultFS未设置为NameNode的URI(如hdfs://master:9000);hdfs-site.xml中的dfs.name.dir(NameNode元数据存储路径)或dfs.data.dir(DataNode数据存储路径)不存在或权限不足(需设置为755且属主为hadoop用户)。使用top、iostat、vmstat等工具监控系统资源使用情况,常见瓶颈及解决措施:
jps显示进程因OutOfMemoryError崩溃,需调整JVM堆大小(在mapred-site.xml中设置mapred.child.java.opts,如-Xmx4096m);iostat显示磁盘利用率持续超过80%,需检查磁盘健康状态(使用fsck修复文件系统错误)或扩容存储;top显示CPU使用率过高,需优化作业逻辑(如减少MapReduce任务的分片数)或增加集群节点。hdfs dfsadmin -safemode leave 9000、50010),使用ufw关闭防火墙(测试环境):sudo ufw disable /etc/hosts是否一致、.ssh/authorized_keys是否包含所有节点的公钥),确保数据块能正常复制。若以上步骤无法解决问题,可尝试重启Hadoop服务:
./stop-all.sh # 停止所有Hadoop服务 ./start-all.sh # 启动所有Hadoop服务 若问题反复出现,考虑升级或回滚Hadoop版本(使用apt或源码编译安装),修复已知bug。
通过以上步骤,可系统性地排查和解决Debian系统下的Hadoop故障。需注意,操作前备份重要数据(如HADOOP_HOME/data目录),避免误操作导致数据丢失。