温馨提示×

Ubuntu Hadoop 故障排查有哪些方法

小樊
40
2025-12-08 21:37:03
栏目: 智能运维

Ubuntu Hadoop 故障排查方法

一 快速定位流程

  • 核对基础环境:执行java -version确认已安装;检查环境变量JAVA_HOME、HADOOP_HOME、PATH是否生效(建议写入**~/.bashrc/etc/profile后执行source**使其生效)。
  • 核对关键配置:重点查看core-site.xml、hdfs-site.xml、yarn-site.xml中的fs.defaultFSdfs.replicationyarn.nodemanager.resource.memory-mb等核心项是否一致且合理。
  • 查看进程与服务:在各节点执行jps确认NameNode、DataNode、ResourceManager、NodeManager等是否在位;异常时优先查看**$HADOOP_HOME/logs**下对应进程的日志。
  • 网络与防火墙:确认节点间SSH免密可达,按需放行端口(如9000、9870、8088等),避免因访问被拒导致组件“起不来”或“看得见起不来”。
  • 首次或异常后的一致性恢复:必要时对HDFS执行hdfs namenode -format(注意会清空元数据,生产谨慎),再按序启动start-dfs.shstart-yarn.sh

二 常见故障与处理要点

症状 快速检查 处理建议
启动报“JAVA_HOME is not set 查看hadoop-env.sh与系统变量 hadoop-env.sh显式设置JAVA_HOME,并确认与系统一致
jpsNameNode/DataNode 查看**$HADOOP_HOME/logs** 多为配置错误或目录权限问题;核对core-site.xml/hdfs-site.xml;必要时清理tmp并重新namenode -format
从机只出现JPS而无DataNode 对比主从core/hdfs配置、网络连通 修正从机配置与主机一致;排查SSH与防火墙;查看从机DataNode日志定位根因
访问50070失败 核对Hadoop 3.x端口变更 Hadoop 3.x 的NameNode Web UI默认端口为9870(50070为2.x)
hadoop: 未找到命令 检查PATH 将**$HADOOP_HOME/bin加入PATH并持久化到~/.bashrc**
执行HDFS命令报“No such file or directory: hdfs://…/user/<当前用户> 检查HDFS上用户目录 先执行hadoop fs -mkdir -p /user/$USER创建家目录
端口访问被拒或节点不通 检查ufw/iptables与监听 放行9000、9870、8088等端口;确认服务实际监听在0.0.0.0而非仅127.0.0.1
WARN util.NativeCodeLoader 查看native库加载 仅为告警,可在log4j.properties中将其设为ERROR以屏蔽

三 配置与权限核查清单

  • 环境变量:在**~/.bashrc/etc/profile中设置并导出JAVA_HOME、HADOOP_HOME、PATH**;执行source后验证echo $JAVA_HOMEecho $HADOOP_HOME
  • 关键配置:
    • core-site.xml:确认fs.defaultFS(如hdfs://localhost:9000hdfs://127.0.0.1:9000)。
    • hdfs-site.xml:核对dfs.replicationdfs.datanode.data.dir等。
    • yarn-site.xml:核对yarn.nodemanager.resource.memory-mbyarn.nodemanager.resource.cpu-vcores
  • 目录与权限:确保Hadoop安装目录HDFS数据目录归属正确、权限充足(如**/usr/local/hadoop/data/hadoop**),避免因权限不足导致启动或写入失败。
  • 主机名与地址:核对**/etc/hostsworkers**(或slaves)文件的主机名解析是否一致,避免“能起但互相不可达”。

四 日志与端口排障要点

  • 日志优先:组件异常时,第一时间查看**$HADOOP_HOME/logs下对应进程的.log.out**,从Caused by定位根因。
  • 进程核验:在各节点执行jps,快速判断缺失的组件(如NameNode/DataNode/ResourceManager/NodeManager)。
  • 端口与服务:
    • 常见端口:9000(HDFS RPC)、9870(NameNode Web UI,Hadoop 3.x)、8088(YARN Web UI)、50010/50020/50075/50090(DataNode相关)。
    • 使用netstat -tulpen | grep <端口>ss -lntp | grep <端口>确认监听地址与进程;必要时用curl/wget测试访问。
  • 防火墙与安全组:在Ubuntu上用ufw放行必要端口,云环境同步放通安全组规则,避免“本机能访问、跨机访问被拒”。

五 数据一致性恢复与重置

  • 适用场景:配置变更、异常关机或DataNode目录变更后,出现ClusterID不一致、块报告异常等。
  • 操作步骤:
    1. 停止集群:stop-dfs.shstop-yarn.sh
    2. 备份并清理dfs.namenode.name.dirdfs.datanode.data.dir指向的目录(或按你的实际tmp/数据目录清理);
    3. 重新格式化:hdfs namenode -format
    4. 启动集群:start-dfs.shstart-yarn.sh
    5. hdfs dfsadmin -reportjps核验DataNode是否注册成功。
  • 风险提示:格式化会清空HDFS元数据与数据,务必先做好备份评估

0