Ubuntu环境下HDFS故障处理指南
一、快速定位流程
二、常见故障与处理要点
| 症状 | 可能原因 | 处理要点 |
|---|---|---|
| 启动后没有NameNode | JAVA_HOME未设或配置错误;未首次格式化;配置/主机名不一致;端口被占用;进程未完全起来 | 1) 在hadoop-env.sh中正确设置JAVA_HOME;2) 首次部署执行hdfs namenode -format(仅在首次!);3) 核对core-site.xml的fs.defaultFS与**/etc/hosts一致;4) 检查端口(如9000**)与防火墙;5) 用start-dfs.sh完整启动并用jps确认进程 |
| 客户端报Connection refused/无法连接 | NameNode未启动或端口不通;/etc/hosts解析错误;防火墙/安全组阻断 | 1) 确认NameNode进程与监听端口;2) 修正**/etc/hosts主机名映射;3) 放行相关端口(如9000**);4) 从客户端测试连通与访问 |
| DataNode反复退服或无法注册 | dfs.datanode.data.dir权限/路径错误;磁盘满或坏盘;网络不通;副本因子/磁盘数配置不当 | 1) 检查目录权限与可用空间;2) 查看DataNode日志定位具体异常;3) 保障节点间网络与端口可达;4) 合理设置dfs.replication与dfs.datanode.failed.volumes.tolerated |
| 读写失败(如FileNotFoundException、副本不足、配额/句柄限制) | 文件/目录不存在或权限不足;副本数不足;目录配额或ulimit过低 | 1) 用hdfs dfs -ls -R确认路径与权限;2) 调整dfs.replication或等待块复制;3) 检查并放宽目录配额与文件最大打开句柄数 |
| EditLog不连续或NameNode启动失败 | 异常关机/磁盘写入失败导致元数据不一致 | 1) 参考HA环境执行手动checkpoint;2) 依据日志修复或恢复一致性后重启;3) 必要时从备份恢复元数据 |
| 集群外访问失败 | 公网/跨域访问限制;客户端配置与服务端不一致 | 1) 避免直接用公网IP访问HDFS;2) 在集群外节点正确安装并配置客户端(与集群版本、配置一致) |
三、关键操作命令清单
四、预防与运维建议
五、重要注意事项