Hadoop于Linux上故障怎么排查
导读:Linux上Hadoop故障排查实操手册 一 快速定位流程 先看进程:执行jps,核对关键进程是否存在(如NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager)。缺...
Linux上Hadoop故障排查实操手册
一 快速定位流程
- 先看进程:执行jps,核对关键进程是否存在(如NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager)。缺进程优先查对应日志。
- 再看服务健康:
- HDFS:执行hdfs dfsadmin -report 查看容量、节点与块状态;必要时用hdfs dfs -ls / 验证访问。
- YARN:执行yarn node -list 与 yarn application -list 查看节点与应用。
- 立刻查日志:到**$HADOOP_HOME/logs** 目录,用tail -f 实时看,或用grep “ERROR” 搜索错误关键字。
- 直连 Web UI:访问 NameNode 50070、ResourceManager 8088 观察集群与作业概况。
- 若作业失败:用yarn logs -applicationId < app_id> 拉取 AM/Container 日志,定位失败阶段与异常堆栈。
二 环境与网络检查
- 资源与磁盘:用df -h 检查数据盘与根分区剩余空间,用free -m 看内存,必要时清理或扩容。
- 系统日志:查看dmesg 与 /var/log/messages 或 /var/log/syslog,捕捉内核、磁盘、OOM 等系统级异常。
- 网络连通:节点间执行ping 与 traceroute;用netstat/ss 检查端口监听,确认服务端口可达。
- 防火墙与安全组:放行 Hadoop 常用端口(如 8088、50010、50020 等),或开发环境临时关闭防火墙验证。
- 主机名与解析:核对**/etc/hosts** 与 DNS,确保主机名可解析且各节点互相可达;SSH 免密登录需正确配置。
三 配置与权限核查
- 配置文件:逐项核对core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 的地址、端口、路径与集群拓扑配置,确保各节点一致。
- 环境变量:确认HADOOP_HOME、PATH、JAVA_HOME 设置正确,避免组件启动找不到 Java 或配置。
- 目录权限与属主:HDFS 与本地数据/日志目录(如 dfs.datanode.data.dir、dfs.namenode.name.dir)属主与权限需与 Hadoop 运行用户一致,避免因权限导致无法读写或加锁失败。
- 脚本与特殊字符:从 Windows 拷贝的脚本注意CRLF 与特殊字符,可能引发解析或路径错误。
四 常见故障与修复要点
| 症状 | 快速检查 | 修复建议 |
|---|---|---|
| NameNode 无法启动 | 查 NameNode 日志;看 dfs.namenode.name.dir 目录权限/磁盘空间 | 若确认为元数据损坏且无备份,按流程备份后执行hadoop namenode -format 并重启;优先恢复备份而非贸然格式化 |
| DataNode 未注册/容量 0 | hdfs dfsadmin -report 显示 Configured Capacity: 0;查 DataNode 日志 | 核对 dfs.datanode.data.dir 路径、权限与磁盘空间;修正 /etc/hosts 主机名解析;确保节点间网络与端口可达 |
| NameNode 处于 SafeMode | 控制台或日志提示 Safe mode is ON | 数据恢复完成后执行hdfs dfsadmin -safemode leave 退出安全模式 |
| 作业失败/容器异常 | yarn logs -applicationId 查看 AM/Container 日志 | 依据日志定位失败阶段(如 AM 启动、资源申请、Container 拉取等),调整资源配置或修复应用代码/依赖 |
| 端口不通/节点间不通 | netstat/ss 查监听;ping/traceroute 测连通;防火墙策略 | 开放必要端口(如 8088、50010、50020),修正安全组与防火墙规则,确保主机名解析一致 |
| SecondaryNameNode 启动失败(锁文件) | 日志出现 in_use.lock (Permission denied) | 删除残留锁文件并以格式化时的同一用户重启;或检查目录权限与属主 |
| 磁盘满/Inode 耗尽 | df -h、df -i 检查空间与 Inode | 清理临时/无用数据,扩容磁盘或调整 HDFS 存储策略,必要时紧急释放空间以保障写入 |
五 性能与长期优化
- 资源瓶颈:用top/htop、vmstat、iostat 观察 CPU、内存、I/O;结合 YARN 资源配置(如 yarn.nodemanager.resource.memory-mb、yarn.nodemanager.resource.cpu-vcores)与队列配额,避免资源争用。
- 数据本地性与调度:尽量提升数据本地性,减少跨节点网络传输,降低作业延迟。
- 监控与告警:部署 Ganglia、Prometheus、Grafana 或 Ambari/Cloudera Manager 做可视化监控与阈值告警,结合 ELK 集中分析日志。
- 变更管理:版本问题难以定位时,优先升级/回滚到稳定版本;所有操作与参数变更留痕记录,便于回溯。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Hadoop于Linux上故障怎么排查
本文地址: https://pptw.com/jishu/751201.html
