查看Hadoop日志
日志是故障排查的核心依据,Hadoop的日志文件默认存放在$HADOOP_HOME/logs目录下(如NameNode、DataNode、ResourceManager等组件的日志)。使用以下命令实时查看或筛选错误信息:
tail -f $HADOOP_HOME/logs/*.log # 实时查看所有日志
grep "ERROR" $HADOOP_HOME/logs/*.log # 筛选错误日志
检查Hadoop进程状态
使用jps命令确认Hadoop关键组件是否正常运行(如NameNode、DataNode、ResourceManager、NodeManager)。若进程未启动,需进一步排查启动失败原因:
jps
验证网络连通性
Hadoop集群依赖节点间通信,需确保所有节点网络畅通:
ping测试节点间连通性:ping <目标IP>;netstat或ss检查端口监听状态(如NameNode的9000端口、ResourceManager的8088端口):netstat -tulnp | grep <端口号>。核查配置文件一致性
重点检查core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml等配置文件的参数是否正确,且所有节点配置一致。常见需确认的参数:
core-site.xml:fs.defaultFS(HDFS地址)、hadoop.tmp.dir(临时目录);hdfs-site.xml:dfs.namenode.name.dir(NameNode元数据目录)、dfs.datanode.data.dir(DataNode数据目录);yarn-site.xml:yarn.resourcemanager.hostname(ResourceManager地址)。重启Hadoop服务
若上述步骤未解决问题,可尝试重启服务(先停止再启动):
$HADOOP_HOME/sbin/stop-all.sh # 停止所有服务
$HADOOP_HOME/sbin/start-all.sh # 启动所有服务
NameNode无法启动
dfs.namenode.name.dir)损坏或namespaceID不一致(NameNode与DataNode的namespaceID不匹配)。hadoop namenode -format);dfs.data.dir目录(需确保NameNode已格式化),重启集群。DataNode无法启动
dfs.datanode.data.dir目录不存在或权限不足;NameNode与DataNode的namespaceID不一致;磁盘空间不足。dfs.datanode.data.dir目录并赋予hadoop用户权限(chown -R hadoop:hadoop <目录路径>);namespaceID;df -h检查磁盘空间,删除无用数据释放空间。ResourceManager/NodeManager无法启动
yarn-site.xml配置错误(如yarn.resourcemanager.hostname未正确设置);端口被占用;资源不足(内存、CPU)。yarn-site.xml中的配置项,确保与集群环境一致;netstat检查端口占用情况,修改配置文件中的端口号;yarn.nodemanager.resource.memory-mb(NodeManager可用内存)和yarn.scheduler.maximum-allocation-mb(调度器最大分配内存)参数。任务执行失败(Reduce Timeout/No Space Left)
mapreduce.task.timeout=600000ms),多因节点压力大、网络延迟或数据倾斜。mapreduce.task.timeout=1200000);优化数据分布(如使用Combiner减少数据传输);调整mapreduce.reduce.memory.mb增加Reduce任务内存。hadoop fs -du -h /查看HDFS空间使用情况,删除旧数据(hadoop fs -rm -r -skipTrash /old_data);使用df -h检查本地磁盘,清理无用文件。防火墙/SELinux阻止通信
systemctl stop firewalld(CentOS 7+)或service iptables stop(CentOS 6);/etc/selinux/config,设置SELINUX=disabled,然后重启系统。主机名解析失败(UnknownHostException)
/etc/hosts文件未配置主机名与IP的映射,导致节点无法通过主机名访问。/etc/hosts文件,添加集群节点的IP与主机名映射(如192.168.1.100 master、192.168.1.101 slave1)。使用Hadoop命令行工具
hdfs dfsadmin -report;yarn node -list;yarn application -list。监控系统资源
使用top、htop、vmstat等工具监控CPU、内存、磁盘I/O使用情况,定位资源瓶颈:
top # 实时查看系统资源占用
vmstat 1 5 # 每1秒采样一次,共5次
iostat -x 1 5 # 查看磁盘I/O详细信息
利用监控工具
部署Ganglia、Prometheus+Grafana等监控工具,实现集群状态的实时可视化,便于提前预警故障。
寻求社区帮助
若问题无法解决,可在Hadoop官方社区(如Apache Hadoop Mailing Lists)、Stack Overflow等技术平台提问,提供详细的错误日志和环境信息。