The filesystem under path ‘/‘ is CORRUPT -HDFS的BLOCK损坏或丢失问题处理方法

问题截图:

 

  一、原因分析

1. 元数据损坏(NameNode故障)

        NameNode的元数据文件(fsimageedits)损坏,导致无法正确加载文件系统树。或者是元数据与数据块的实际存储位置不一致(例如DataNode上报的块信息与NameNode记录不符)。通常是因为没有正常关机导致NameNode进程异常终止或磁盘故障。还有可能是手动修改元数据文件或误删关键文件。

2. 数据块丢失或损坏(DataNode故障)

  • DataNode的磁盘损坏,导致存储的数据块无法读取。

  • 网络分区或DataNode进程崩溃,导致块副本丢失(低于HDFS副本因子要求)。

3. 人为操作失误

误执行hdfs dfs -rm命令删除关键系统文件或者是格式化NameNode后未正确恢复备份。

以上几种原因都会导致磁盘的损坏。下面是几种解决方案。

二、解决方案

1.快照恢复

如果上一次操作完之后有拍摄快照,就可以通过恢复快照来轻松地解决问题。

恢复每个结点的快照即可。

再重新启动集群。

start-dfs.sh 

再此查看磁盘就恢复“health”了

如果没有拍摄快照解决起来会比较麻烦,所以在操作完成之最好拍摄快照。

2. 检查HDFS健康状态

使用 hdfs fsck 命令全面扫描文件系统,定位损坏的块和文件:

hdfs fsck / -list-corruptfileblocks -delete

参数说明

  • -list-corruptfileblocks:列出所有损坏的块。

  • -delete:自动删除无法修复的文件(请谨慎使用,对于重要的文件来说这是不可取的)。

3.恢复NameNode元数据

若元数据损坏,优先从备份恢复:

# 1. 停止NameNode服务
hdfs --daemon stop namenode

# 2. 恢复fsimage和edits
cp /backup/fsimage_* /hadoop-data/name/current/
cp /backup/edits_* /hadoop-data/name/current/

# 3. 重启NameNode并进入恢复模式
hdfs namenode -recover

4. 替换损坏的DataNode

若某个DataNode持续报错,替换其硬件或节点:

# 1. 停止问题DataNode
hdfs --daemon stop datanode

# 2. 从集群中解除该节点
hdfs dfsadmin -refreshNodes

# 3. 部署新节点并重新注册
hdfs dfsadmin -refreshNodes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值