Debian环境下Hadoop故障排查指南
Hadoop的日志文件是故障排查的核心依据,通常位于$HADOOP_HOME/logs目录下(如hadoop-*-namenode-*.log、hadoop-*-datanode-*.log)。使用tail -f命令实时监控日志,或通过grep "error"过滤错误信息,可快速定位问题根源(如进程崩溃、配置错误)。
使用jps命令列出所有Java进程,检查NameNode、DataNode、ResourceManager、NodeManager等核心组件是否正常运行。若进程缺失,需重新启动对应服务(如hadoop-daemon.sh start namenode),并查看启动日志确认失败原因。
Hadoop集群依赖节点间的网络通信,使用ping命令测试各节点之间的连通性(如ping datanode1-ip)。若网络不通,需检查IP地址、子网掩码、网关配置,或排查防火墙/SELinux是否阻止了Hadoop所需端口(如HDFS的50070、YARN的8088端口)。
Hadoop的核心配置文件(core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml)需确保参数设置正确:
core-site.xml:fs.defaultFS需指向NameNode的URI(如hdfs://namenode-ip:9000);hdfs-site.xml:dfs.replication需根据集群规模设置(如3表示3副本);yarn-site.xml:yarn.resourcemanager.hostname需指向ResourceManager节点。使用top命令实时监控CPU、内存占用,iostat -x 1查看磁盘I/O负载,vmstat 1查看虚拟内存状态。若资源不足(如内存耗尽导致OOM错误),需调整JVM堆大小(修改hadoop-env.sh中的HADOOP_HEAPSIZE参数)或优化任务资源分配。
VERSION文件不一致。解决方法是停止集群,删除NameNode数据目录(如/usr/local/hadoop/data/namenode/current)中的VERSION文件,重新格式化NameNode(hdfs namenode -format)。fsck命令检查并修复磁盘错误(如sudo fsck /dev/sda1),移除故障磁盘对应的挂载点,重启DataNode服务。-Xmx4g表示最大堆内存4GB),减少单个任务的资源需求(如mapreduce.map.memory.mb设置为2048)。PATH环境变量包含Python路径(如export PATH=$PATH:/usr/bin/python3),并在hadoop-env.sh中指定Python路径(如export HADOOP_PYTHON=/usr/bin/python3)。hdfs dfsadmin -safemode leave强制退出。若上述步骤未解决问题,可尝试重启Hadoop服务:先停止所有服务($HADOOP_HOME/sbin/stop-all.sh),再启动所有服务($HADOOP_HOME/sbin/start-all.sh)。重启可解决临时性故障(如进程卡死、资源占用过高)。