HDFS故障排查Ubuntu怎么办
导读:Ubuntu 下 HDFS 故障排查快速指南 一 快速定位流程 检查进程是否都在:运行 jps,正常应看到 NameNode、DataNode、SecondaryNameNode(伪分布式三者在同一台机器)。若缺失,转到对应小节处理。 查...
Ubuntu 下 HDFS 故障排查快速指南
一 快速定位流程
- 检查进程是否都在:运行 jps,正常应看到 NameNode、DataNode、SecondaryNameNode(伪分布式三者在同一台机器)。若缺失,转到对应小节处理。
- 查看服务日志:到 $HADOOP_HOME/logs/ 查看 NameNode/DataNode 的 .log 与 .out,优先从最新的异常栈定位根因。
- 校验基础环境:确认 JAVA_HOME 已设置且版本匹配(Hadoop 3.x 常用 JDK 8),SSH 免密登录正常(本地或集群节点)。
- 核对关键配置:core-site.xml 的 fs.defaultFS 与 hdfs-site.xml 的 dfs.replication/dfs.namenode.name.dir/dfs.datanode.data.dir 等路径与地址是否正确。
- 访问 Web UI:Hadoop 3.x 默认 NameNode Web UI 端口为 9870(2.x 为 50070),浏览器访问 http://:9870 检查 Live Nodes 与 Capacity。
二 常见故障与修复
- NameNode 未启动或启动后立即退出
- 首次部署未格式化:执行一次 hdfs namenode -format(仅在首次!会清空元数据)。
- 目录权限或残留导致格式化失败:若日志出现 “Cannot remove current directory …/dfs/name/current”,先 stop-dfs.sh,清理对应目录(如 sudo rm -rf /usr/data/hadoop/tmp/dfs/name/current),再格式化并启动。
- 端口或主机名解析问题:核对 core-site.xml 的 fs.defaultFS= hdfs://:9000,确保 /etc/hosts 正确映射主机名与 IP,避免把主机名错误解析到 127.0.0.1。
- 以 root 启动报错:Hadoop 3 要求显式设置用户,在 sbin/start-dfs.sh 与 sbin/stop-dfs.sh 顶部加入(按实际用户调整):
- HDFS_DATANODE_USER=hadoop
- HDFS_DATANODE_SECURE_USER=hdfs
- HDFS_NAMENODE_USER=hadoop
- HDFS_SECONDARYNAMENODE_USER=hadoop
- DataNode 未注册或反复退服
- 多节点环境常见原因是各节点 dfs.datanode.data.dir 未清理,导致 clusterID 不一致:在各 DataNode 上清理数据目录后重启;或先停集群,统一清理再启动。
- 写文件报 “0 datanode(s) running / 副本不足”:通常是 没有可用 DataNode,先确保 DataNode 进程存活且 Live Nodes > 0,再重试。
- 客户端连接重试或命令卡住
- 常见为 NameNode RPC 端口(默认 9000) 不通或主机名解析错误:检查 fs.defaultFS 与 /etc/hosts,必要时改用 IP 验证连通性。
- 使用 hdfs dfs -ls / 等命令前,确认 start-dfs.sh 已执行且 jps 能看到 NameNode/DataNode。
三 关键命令清单
- 启停与进程
- 启动:sbin/start-dfs.sh;停止:sbin/stop-dfs.sh
- 进程检查:jps
- 首次初始化与目录
- 格式化:hdfs namenode -format(首次且仅一次)
- 安全清理示例:sudo rm -rf /usr/data/hadoop/tmp/dfs/name/current(格式化前确保无业务数据)
- 集群健康与空间
- 节点与容量:hdfs dfsadmin -report
- 常用客户端
- 列根目录:hdfs dfs -ls /
- 创建目录:hdfs dfs -mkdir -p /path(Hadoop 3 使用 hdfs dfs 前缀)
- 日志与 Web
- 日志路径:$HADOOP_HOME/logs/(查看 NameNode/DataNode 最新日志)
- Web UI:Hadoop 3.x 访问 http://:9870 查看 Live Nodes、DFS Used、Capacity
四 配置与版本要点
- Java 与用户:Hadoop 3.x 建议使用 JDK 8;避免使用 root 直接启停,按需在 sbin/start-dfs.sh/stop-dfs.sh 顶部设置 HDFS_*_USER 变量。
- 端口与 UI:Hadoop 3.x 的 NameNode Web UI 端口为 9870(2.x 为 50070),避免按旧文档访问错误端口。
- 主机名解析:确保 /etc/hosts 正确映射,避免将主机名指向 127.0.0.1 导致节点互访异常。
- 数据与元数据目录:首次部署或异常后清理,务必同时处理 dfs.namenode.name.dir 与 dfs.datanode.data.dir,否则易出现 clusterID 不一致或格式化失败。
五 仍未恢复时的建议
- 提供以下关键信息以便进一步定位:Hadoop 版本、操作系统版本、异常日志片段(NameNode/DataNode 的 .log/.out)、core-site.xml/hdfs-site.xml 关键配置、jps 输出、hdfs dfsadmin -report 摘要、浏览器访问 9870 的 Live Nodes 截图。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: HDFS故障排查Ubuntu怎么办
本文地址: https://pptw.com/jishu/784732.html
