Debian中Hadoop故障排查方法
导读:Debian上排查Hadoop故障的实用流程 一 快速定位流程 查看组件进程:运行jps,核对是否存在NameNode、DataNode、ResourceManager、NodeManager等关键进程,缺失即优先定位对应组件日志。 实时...
Debian上排查Hadoop故障的实用流程
一 快速定位流程
- 查看组件进程:运行jps,核对是否存在NameNode、DataNode、ResourceManager、NodeManager等关键进程,缺失即优先定位对应组件日志。
- 实时查看日志:在**$HADOOP_HOME/logs下执行tail -f .log或grep “ERROR” .log,从最近的错误栈定位根因。
- 校验配置:检查core-site.xml、hdfs-site.xml、yarn-site.xml等核心配置是否一致、路径与地址是否正确。
- 网络连通:集群节点间执行ping与端口探测,确认通信正常。
- 资源与系统:用top、iostat、vmstat观察CPU、内存、I/O;必要时查看**/var/log/syslog、dmesg、journalctl**获取系统级错误。
- Web UI:访问NameNode 50070与ResourceManager 8088查看集群健康与任务状态。
二 常见故障与处理要点
- NameNode无法启动
- 可能原因:元数据损坏、目录权限或路径错误。
- 处理:核对hdfs-site.xml中dfs.namenode.name.dir等目录权限与可用空间;必要时备份后执行hdfs namenode -format再启动(仅在确认可重初始化时执行)。
- DataNode未注册或反复退出
- 可能原因:dfs.datanode.data.dir不可写/磁盘满、与NameNode的clusterID不一致、网络不通。
- 处理:检查目录权限与磁盘空间;对比namenode/current/VERSION与datanode/current/VERSION的clusterID;排查防火墙与网络。
- ResourceManager/NodeManager异常
- 可能原因:yarn-site.xml配置错误、端口冲突、资源不足。
- 处理:核对yarn.resourcemanager.hostname、yarn.nodemanager.aux-services等;用netstat -tlnp查端口占用;查看对应日志。
- 无法访问Web UI
- 可能原因:服务未启动、端口未放行、主机名解析错误。
- 处理:确认进程存活;在Debian上放行相关端口(如50070、8088等);确保**/etc/hosts**或DNS解析正确。
- SSH免密登录失败
- 可能原因:公钥未分发、权限不当、sshd未重启。
- 处理:执行ssh-keygen -t rsa,将公钥追加到**~/.ssh/authorized_keys**,必要时sudo systemctl restart sshd,并测试ssh hadoop@node_ip。
三 配置与网络检查清单
- Java与环境变量:执行java -version确认版本;在**~/.bashrc或/etc/profile中正确设置JAVA_HOME、HADOOP_HOME、PATH**(如:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64; export HADOOP_HOME=/opt/hadoop; export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin),并source使其生效。
- 核心配置文件:重点核对core-site.xml(如fs.defaultFS)、hdfs-site.xml(如dfs.replication、dfs.namenode.name.dir、dfs.datanode.data.dir)、yarn-site.xml(如yarn.resourcemanager.hostname、yarn.nodemanager.aux-services)。
- 主机清单:在**$HADOOP_HOME/etc/hadoop/workers**(旧版为slaves)中列出所有DataNode/NodeManager主机,保持与**/etc/hosts**或DNS一致。
- 防火墙与端口:在Debian(若启用ufw)放行必要端口,例如50070、8088、9000、19888、50010、50020、50075、50090;或在内网策略中确保节点间这些端口互通。
四 常用命令速查表
| 目标 | 命令示例 |
|---|---|
| 查看Java进程 | jps |
| 实时看日志 | tail -f $HADOOP_HOME/logs/*.log;grep “ERROR” $HADOOP_HOME/logs/*.log |
| 检查配置 | cat $HADOOP_HOME/etc/hadoop/core-site.xml;cat $HADOOP_HOME/etc/hadoop/hdfs-site.xml;cat $HADOOP_HOME/etc/hadoop/yarn-site.xml |
| 启停集群 | $HADOOP_HOME/sbin/stop-all.sh;$HADOOP_HOME/sbin/start-all.sh |
| 查看系统日志 | tail -f /var/log/syslog;dmesg;journalctl -xe |
| 资源监控 | top;iostat -x 1;vmstat 1 |
| 端口与连通 | netstat -tlnp;ping < 目标IP> |
| Web UI | http://< NameNode_IP> :50070;http://< RM_IP> :8088 |
| 格式化NameNode | hdfs namenode -format |
五 排错小技巧
- 先易后难:优先看日志与进程,再做配置与网络,最后考虑资源与版本。
- 变更可控:修改配置或执行namenode -format前先备份数据与配置,变更后逐步重启并观察。
- 环境一致:集群节点保持Java版本、Hadoop版本、配置文件、主机名解析一致,减少非业务因素干扰。
- 最小化复现:在单机上用伪分布式复现问题,便于快速定位后再推广到集群。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian中Hadoop故障排查方法
本文地址: https://pptw.com/jishu/753952.html
