温馨提示×

centos下hdfs怎样恢复

小樊
45
2026-09-15 14:57:20
栏目: 智能运维

CentOS 下恢复 HDFS,需要先明确你所说的“恢复”是哪一种场景,因为不同情况处理方式完全不同:


一、NameNode 元数据损坏(最常见)

1. 有 Secondary NameNode / Checkpoint

适用于:NameNode 无法启动,但 fsimage + edits 还在。

恢复步骤:

# 停止 HDFS
stop-dfs.sh

# 进入 NameNode 元数据目录
cd /dfs/nn  # 视你配置的 dfs.namenode.name.dir 而定

# 拷贝最近的 fsimage 和 edits
ls -l current/

# 使用 Secondary NameNode 的 checkpoint 恢复
hdfs namenode -importCheckpoint

执行后:

hadoop-daemon.sh start namenode

2. NameNode 完全损坏(无备份)

如果有 Standby NameNode(HA)

# 在 Standby 节点执行
hdfs namenode -bootstrapStandby

二、误删文件恢复(Trash 机制)

HDFS 默认开启回收站:

hdfs dfs -ls /user/root/.Trash/Current
hdfs dfs -mv /user/root/.Trash/Current/xxx /目标路径

如果回收站已清空,只能从 快照 / 备份 恢复。


三、数据块丢失(DataNode 故障)

1. DataNode 宕机

hadoop-daemon.sh start datanode

2. 块损坏

hdfs fsck / -list-corruptfileblocks
hdfs fsck / -delete   # 删除损坏块(谨慎)

四、HDFS 整体灾难恢复(备份还原)

如果是 全量恢复

  1. 停止 HDFS
  2. 恢复 NameNode 元数据
  3. 恢复 DataNode 数据目录
  4. 启动 HDFS

五、HA 环境下的恢复

# 查看状态
hdfs haadmin -getServiceState nn1

# 手动切换
hdfs haadmin -transitionToActive nn1

六、关键配置文件检查

/etc/hadoop/hdfs-site.xml
/etc/hadoop/core-site.xml

重点检查:

  • dfs.namenode.name.dir
  • dfs.datanode.data.dir
  • dfs.replication

七、建议

  • 生产环境 必须开启 HA
  • 定期 hdfs dfsadmin -fetchImage
  • 使用 快照(Snapshot)

如果你能说明:

  • 是否 HA
  • 是 NameNode 还是 DataNode 问题
  • 是否有备份

我可以给你精确到命令级别的恢复方案

0