温馨提示×

centos怎样修复hdfs异常

小樊
48
2026-09-09 10:53:55
栏目: 智能运维

在 CentOS 上“修复 HDFS 异常”要根据具体异常现象来对症下药。下面我按常见故障场景给你一套排查 + 修复思路,你可以对照使用。


一、先确认 HDFS 状态(最重要)

hdfs dfsadmin -report

或(Hadoop 3+):

hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2

查看:

  • NameNode 是否 Active/Standby
  • DataNode 数量是否正常
  • 是否有 Missing / Corrupt Blocks

二、NameNode 无法启动

1. 编辑日志(edits)损坏

hdfs namenode -recover

按提示选择:

  • c 删除损坏 edit
  • s 跳过

⚠️ 有数据丢失风险,先备份 dfs.namenode.name.dir

2. NameNode 元数据损坏(严重)

# 停止 HDFS
stop-dfs.sh

# 从 SecondaryNameNode 恢复
cp -r /path/to/namesecondary/* /path/to/namenode/

hdfs namenode -importCheckpoint

三、DataNode 不注册 / 失踪

1. 查看 DataNode 日志

tail -200 /var/log/hadoop-hdfs/hadoop-hdfs-datanode-*.log

常见原因:

  • 无法连接 NameNode
  • 集群 ID 不一致

2. 集群 ID 不一致(非常常见)

cat /data/hdfs/name/current/VERSION
cat /data/hdfs/data/current/VERSION

如果 clusterID 不同:

# 停 DataNode
systemctl stop hadoop-datanode

# 删除 data 目录
rm -rf /data/hdfs/data/*

# 重启
systemctl start hadoop-datanode

四、块损坏(Corrupt / Missing blocks)

1. 查看损坏块

hdfs fsck / -list-corruptfileblocks

2. 尝试自动修复

hdfs fsck / -repair

3. 删除不可恢复文件(最后手段)

hdfs fsck / -delete

五、HDFS 安全模式(Safe Mode)

查看

hdfs dfsadmin -safemode get

强制退出(确认无问题后)

hdfs dfsadmin -safemode leave

六、HA 模式下 NameNode 异常

1. ZKFC 未启动

systemctl status hadoop-zkfc
systemctl start hadoop-zkfc

2. 强制切换

hdfs haadmin -transitionToActive nn1 --forceactive

七、磁盘 / 权限问题(CentOS 特有)

1. 磁盘满

df -h

清理:

du -sh /data/hdfs/data/*

2. 权限错误

chown -R hdfs:hadoop /data/hdfs
chmod 700 /data/hdfs

八、通用排错顺序(推荐)

  1. jps 看进程
  2. 看日志(/var/log/hadoop-hdfs/)
  3. dfsadmin -report
  4. fsck
  5. 再决定修 NN / DN / 块

九、如果你愿意,我可以直接帮你定位

你可以把以下信息发我:

  • Hadoop 版本
  • 错误日志(NameNode / DataNode)
  • hdfs dfsadmin -report 输出
  • 具体报错信息(如 Cannot obtain block、NameNode is in safe mode)

我可以精确到命令级修复方案。

0 踩