ubuntu hdfs故障排查思路
导读:Ubuntu 上 HDFS 故障排查思路 一 快速定位流程 先看进程:运行 jps,确认 NameNode、DataNode、SecondaryNameNode 是否在位;若缺失,多半是启动失败或配置异常。 再看端口连通:在目标节点执行...
Ubuntu 上 HDFS 故障排查思路
一 快速定位流程
- 先看进程:运行 jps,确认 NameNode、DataNode、SecondaryNameNode 是否在位;若缺失,多半是启动失败或配置异常。
- 再看端口连通:在目标节点执行 netstat -tlpn | grep 9000,确认 fs.defaultFS=hdfs://< 主机名或IP> :9000 的端口在监听;从外部访问时用 telnet 9000 验证。
- 然后看日志:到 $HADOOP_HOME/logs/ 查看对应进程的 .log/.out,优先定位 ERROR/Exception。
- 最后看 Web:Hadoop 3.x 的 NameNode Web UI 默认端口为 9870(2.x 为 50070),浏览器访问 http://:9870 检查集群状态、安全模式、容量等。
二 常见症状与处理要点
- NameNode 未启动或启动即退
- 检查 JAVA_HOME/hadoop-env.sh 是否正确;首次部署需执行 hdfs namenode -format(仅在首次,会清空元数据);用 start-dfs.sh 启动后用 jps 验证;仍失败时查看 $HADOOP_HOME/logs/ 的 NameNode 日志。
- 外部客户端报 Connection refused
- 在客户端与服务器双向 telnet 9000;确保 core-site.xml 的 fs.defaultFS 使用可路由的 IP 或主机名;修正 /etc/hosts 映射,避免把主机名错误解析到 127.0.0.1;服务器侧用 netstat 确认监听地址为 0.0.0.0 或正确的内网 IP。
- 权限拒绝 Permission denied
- 临时方案:在客户端设置环境变量 HADOOP_USER_NAME=hadoop(或代码中设置);或调整目录权限 hdfs dfs -chmod -R 755 /user/hadoop。生产建议启用权限模型并规范用户与目录属主。
- 处于安全模式 NameNode is in safe mode
- 只读状态,写操作被拒。先查 dfsadmin -safemode get 与 http://:9870 的可用空间;若 剩余空间过低(如仅剩几十 MB),清理磁盘或扩容,安全模式会自动退出;必要时再手动 dfsadmin -safemode leave。
- 启动脚本报错(root 运行或 pdsh 问题)
- 以 root 执行时,需在 sbin/start-dfs.sh/stop-dfs.sh 中显式设置 HDFS_NAMENODE_USER/HDFS_DATANODE_USER/HDFS_SECONDARYNAMENODE_USER/HDFS_DATANODE_SECURE_USER;若用 pdsh 报连接拒绝,设置 export PDSH_RCMD_TYPE=ssh 改用 SSH。
- 浏览器打不开 50070/9870
- 确认 9870 已监听且防火墙放行;Hadoop 3.x 使用 9870,2.x 使用 50070,不要混淆。
三 配置与网络检查清单
- 主机名与解析:确保 /etc/hosts 正确映射所有节点的 IP ↔ 主机名,且主机名不要包含 下划线“_” 或 点号“.”,否则可能出现 Invalid host:port authority 等解析错误。
- 监听地址与端口:确认 fs.defaultFS=hdfs://< 主机名或IP> :9000 与 netstat 监听一致;避免把主机名绑定到 127.0.0.1 导致外部不可达。
- 防火墙与安全组:在 Ubuntu 上放行 9000、9870(以及 DataNode 常用端口如 50010/50075/50020 等),或临时关闭 ufw 验证是否为网络阻断。
- 目录权限与属主:Hadoop 安装目录与 dfs 数据目录 属主/权限正确,避免因权限导致进程无法读写或格式化失败。
四 高频命令速查
- 进程与服务:
- 查看进程:jps
- 启动/停止:start-dfs.sh / stop-dfs.sh
- 命名空间与安全模式:
- 格式化(首次):hdfs namenode -format
- 安全模式:hdfs dfsadmin -safemode get/leave
- 连通性与监听:
- 端口连通:telnet 9000
- 监听端口:netstat -tlpn | grep 9000
- Web 与日志:
- Web UI:http://:9870(Hadoop 3.x)
- 日志目录:$HADOOP_HOME/logs/
- 客户端权限:
- 临时用户:export HADOOP_USER_NAME=hadoop
- 目录权限:hdfs dfs -chmod -R 755 /user/hadoop
五 预防与优化建议
- 首次部署再格式化:仅在首次初始化时执行 hdfs namenode -format,避免重复格式化导致 clusterID 不一致、DataNode 无法注册。
- 统一配置与自动化:主从节点保持 core-site.xml/hdfs-site.xml 一致,使用 Ansible/脚本 分发与启停,减少人为差异。
- 资源与健康监控:关注 磁盘剩余空间 与 NameNode 堆内存,避免因空间不足反复进入安全模式或频繁 Full GC。
- 主机名规范:全程使用符合 DNS 规范的主机名(避免 “_” 与 “.”),减少解析与授权异常。
- 版本差异注意:Hadoop 3.x 的 NameNode Web UI 端口为 9870(2.x 为 50070),避免误判为服务未起。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu hdfs故障排查思路
本文地址: https://pptw.com/jishu/789520.html
