温馨提示×

HDFS在Ubuntu上的故障排查步骤

小樊
43
2025-12-06 22:42:58
栏目: 智能运维

HDFS在Ubuntu上的故障排查步骤

一 快速定位与基础检查

  • 检查进程是否齐全:运行jps,应能看到NameNode、DataNode、SecondaryNameNode(若启用YARN,还应看到ResourceManager、NodeManager)。缺进程优先看日志定位根因。
  • 查看集群健康与节点:执行hdfs dfsadmin -report,核对Live datanodesConfigured CapacityDFS Used等关键指标。
  • 校验HDFS可用性:执行hdfs dfs -ls /,确认客户端可正常访问;若报连接异常,转向网络与端口排查。
  • 查看服务日志:Hadoop日志默认在**$HADOOP_HOME/logs/(常见为namenode-.log、datanode-.log**),优先检索ERROR/Exception及堆栈信息。
  • 系统资源与磁盘:用top/htop、df -h检查CPU、内存、磁盘空间,避免因资源不足导致进程异常或数据写入失败。

二 常见故障与修复对照表

症状 快速检查 修复建议
启动后没有NameNode jps无NameNode;查看**$HADOOP_HOME/logs/namenode-*.log** 核对hadoop-env.sh、core-site.xml、hdfs-site.xml;确认JAVA_HOME;首次启动需执行hdfs namenode -format(注意会清空元数据);用start-dfs.sh启动;检查**/etc/hosts主机名映射与端口(如9000**)可达
Connection refused/无法连接 本机/跨机telnet 9000不通;浏览器访问http://:50070失败 确认NameNode已启动;核对core-site.xmlfs.defaultFS是否为hdfs://:9000;排查防火墙/安全组放通9000、50070等端口;检查**/etc/hosts**解析是否正确
Incompatible namespaceIDs DataNode日志含“Incompatible namespaceIDs” 清理DataNode数据目录(如dfs.datanode.data.dir),或对齐namespaceID后重启;若已格式化NameNode,需同步清理并重起集群
DataNode启动即退出/All directories in dfs.data.dir are invalid DataNode日志提示目录无效或权限错误 确认dfs.datanode.data.dir路径存在且权限正确(常见要求rwxr-xr-x);必要时chown/chmod修正后重启
NameNode处于安全模式 创建/删除文件时报“Name node is in safe mode” 等待自动退出或执行hdfs dfsadmin -safemode leave;若长期不退出,检查副本数DataNode数量是否满足策略
格式化失败“Cannot remove current directory” 执行hdfs namenode -format时报错 停止集群(如stop-dfs.sh);手动清理dfs.namenode.name.dir/current或对应临时目录;确认目录可写非只读文件系统;再格式化并启动

三 配置与端口核对清单

  • 核心配置:
    • core-site.xml:确认fs.defaultFS=hdfs://:9000
    • hdfs-site.xml:核对dfs.replication(单机可设为1)、dfs.namenode.name.dirdfs.datanode.data.dir等路径是否存在且权限正确。
  • 环境变量:确保JAVA_HOME指向JDK 8(Hadoop 3.x常用),并在**~/.bashrc/etc/profile中正确设置HADOOP_HOME、PATH**。
  • 端口与连通:
    • 9000(HDFS RPC)、50070(NameNode Web UI,Hadoop 3.x为9870)、50010/50020(DataNode数据传输)等端口需放通。
    • Ubuntu使用ufw:如sudo ufw allow 9000、9870、8088;云服务器同步检查安全组规则。
  • 主机名解析:确保**/etc/hosts包含 映射,避免UnknownHostException**。

四 数据一致性与空间问题处理

  • 文件系统健康检查:执行hdfs fsck /,必要时用hdfs fsck -files -blocks -locations /定位损坏块/缺失副本并修复。
  • 安全模式干预:仅在确认数据块满足最小副本数后执行hdfs dfsadmin -safemode leave,避免数据风险。
  • 容量与Inode:用df -h、df -i检查磁盘空间/Inode是否耗尽;空间不足会导致写入失败或副本不足。
  • 监控与告警:关注HDFS Canary、Corrupt Blocks、DataNode Health、Free Space等指标,提前发现异常。

五 最小化验证与回退步骤

  • 本地伪分布式自检:
    • 格式化:hdfs namenode -format
    • 启动:start-dfs.sh
    • 验证:jps查看进程;hdfs dfsadmin -report查看节点;hdfs dfs -ls /测试读写;浏览器访问http://localhost:9870(Hadoop 3.x)。
  • 变更回退:出现异常优先回滚最近配置改动;必要时清理NameNode/DataNode数据目录后重做格式化并重启(注意数据会丢失)。

0