HDFS故障排查在CentOS怎么进行
导读:CentOS 上 HDFS 故障排查实操指南 一 快速定位流程 服务与进程:用 jps 确认 NameNode/DataNode 是否存活;若使用系统服务,执行 systemctl status hadoop-hdfs-namenode...
CentOS 上 HDFS 故障排查实操指南
一 快速定位流程
- 服务与进程:用 jps 确认 NameNode/DataNode 是否存活;若使用系统服务,执行 systemctl status hadoop-hdfs-namenode / hadoop-hdfs-datanode;异常时优先查看 /var/log/hadoop-hdfs/ 下的 namenode/datanode 日志。
- 集群健康:执行 hdfs dfsadmin -report 查看 Live/Decommissioning/Failed 节点与容量;用 hdfs dfsadmin -safemode get 检查是否处于安全模式(只读)。
- 文件系统一致性:运行 hdfs fsck / 检查缺失/损坏块与复制不足;必要时按提示修复或先移出受影响文件。
- 网络连通与解析:用 ping 与 telnet < NN_IP> < RPC_PORT> 测试节点互通;核对 /etc/hosts 与 DNS 解析是否一致。
- 防火墙与端口:用 firewall-cmd --list-all 或 iptables -L 检查策略;按需放行 HDFS RPC/HTTP 等端口并 reload。
- 资源与磁盘:用 top/htop/df -h 排查 CPU/内存/磁盘 瓶颈与 磁盘满 问题。
- 客户端与权限:核对 JAVA_HOME/HADOOP_HOME 与 core-site.xml/hdfs-site.xml 配置;遇到 Permission denied 时检查 HDFS 目录权限 与本地运行用户。
二 常见故障与修复要点
| 症状 | 快速检查 | 修复建议 |
|---|---|---|
| NameNode 无法启动/反复切换 | 查 NameNode 日志;核对 RPC 端口 是否被占用或变更;查看 JournalNode 是否一致 | 释放或更换端口;恢复 JournalNode 多数派一致;必要时从 Standby 手动 checkpoint 再切换 |
| DataNode 反复退服/启动失败 | 查 DataNode 日志;核对 dfs.datanode.data.dir 权限与磁盘;看 磁盘满/坏盘 | 修复磁盘/更换目录;确保运行用户对数据目录 读写;必要时调整 dfs.datanode.failed.volumes.tolerated |
| 处于安全模式无法写入 | hdfs dfsadmin -safemode get | 数据恢复后执行 hdfs dfsadmin -safemode leave |
| 写入失败/副本不足 | hdfs dfsadmin -report 看 Configured/Actual 副本数;查 磁盘空间 | 增加 dfs.replication 或扩容;清理空间;排查 DataNode 退服 与网络分区 |
| 块丢失/坏块 | hdfs fsck / 显示 missing/corrupt | 先迁移/删除受影响文件;从备份恢复;必要时调整 replication 后重传 |
| 权限拒绝 | 本地与 HDFS 权限;运行用户 | 用 hdfs dfs -chmod/-chown 修正;或以具备权限的用户执行 |
| 客户端 UnknownHost/连接超时 | /etc/hosts、DNS、firewall | 修正主机名映射;开放端口;确保客户端可路由到 NameNode |
| 容量 100%/写入失败 | hdfs dfsadmin -report;df -h | 清理无用数据;扩容 DataNode;检查 配额 与 快照 占用 |
三 关键命令清单
- 服务与进程:
- 查看进程:jps
- 服务状态:systemctl status hadoop-hdfs-namenode / hadoop-hdfs-datanode
- 启动/停止:systemctl start|stop hadoop-hdfs-namenode / hadoop-hdfs-datanode 或 start-dfs.sh / stop-dfs.sh
- 集群与文件系统:
- 节点与容量:hdfs dfsadmin -report
- 安全模式:hdfs dfsadmin -safemode get|leave
- 健康检查:hdfs fsck /(加 -delete 谨慎删除损坏块)
- 拓扑与机架:hdfs dfsadmin -printTopology
- 网络与防火墙:
- 端口连通:telnet
- 防火墙:firewall-cmd --list-all;放行示例:firewall-cmd --add-port=50010/tcp --permanent & & firewall-cmd --reload
- 客户端与权限:
- 列目录:hadoop fs -ls /
- 权限变更:hadoop fs -chmod 755 /path;hadoop fs -chown user:group /path
- 配置与变量:
- 环境变量:echo $JAVA_HOME $HADOOP_HOME;必要时在 /etc/profile 或 ~/.bashrc 中导出并 source 生效
四 配置与环境因素排查
- 配置文件:核对 core-site.xml 的 fs.defaultFS、hdfs-site.xml 的 dfs.namenode.rpc-address / dfs.namenode.http-address / dfs.datanode.data.dir / dfs.replication 等关键项;变更 RPC 端口 后需同步所有节点并重启相关服务。
- 主机名解析:确保 /etc/hosts 或 DNS 正确映射所有 NameNode/DataNode 主机名与 IP,避免 UnknownHostException。
- 环境变量:在 /etc/profile 或 ~/.bashrc 正确设置 JAVA_HOME/HADOOP_HOME/PATH 并 source 生效。
- 权限与目录:本地 Hadoop 安装目录与日志目录 归属运行用户(如 hadoop:hadoop);HDFS 上关键目录(如 /user)权限正确。
- 防火墙与端口:放行 HDFS RPC/HTTP 等端口(示例:50010/tcp),或临时停用防火墙做对比测试。
- 时间同步:集群节点启用 NTP 保持时间一致,避免 EditLog 不连续/丢块 等问题。
- 配置同步:变更后使用 scp/rsync 将配置分发到所有节点并统一生效。
五 数据安全与恢复建议
- 变更前先备份关键配置与元数据目录;执行高风险操作(如 NameNode 重新格式化)前务必确认影响范围。
- 出现 块丢失/坏块 时,优先从备份恢复;无备份则迁移受影响数据后清理,再触发重传。
- 使用 DistCp 在集群间/跨集群迁移恢复数据,或重新生成缺失数据并上传。
- NameNode 长时间故障 或 HA 异常 时,可在 Standby 上手动执行 checkpoint,再尝试切换。
- 若 安全模式 无法退出,先完成数据修复/恢复,再执行 hdfs dfsadmin -safemode leave。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: HDFS故障排查在CentOS怎么进行
本文地址: https://pptw.com/jishu/781445.html
