HDFS块损坏了,是如何修复

Posted 若泽大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS块损坏了,是如何修复相关的知识,希望对你有一定的参考价值。

准备(模拟块丢失)

创建一个文件夹

hdfs dfs -mkdir /blockrecover

准备一个文件

echo "hello world" >> test.txt

上传文件到hdfs

hdfs dfs -put test.txt/blockrecover

检查健康状态

hdfs fsck /

HDFS块损坏了,是如何修复

查看一下block信息

HDFS块损坏了,是如何修复

在data目录查找block信息

find ./data -name "blk_1073741826_1002*"

HDFS块损坏了,是如何修复

删除block和meta信息

找到之后cd进去吧meta和对应的block删除了,模拟块丢失

HDFS块损坏了,是如何修复

重启hdfs(因为默认fsck间隔时间是6个小时,这里重启)

再来检查

hdfs fsck /blockrecover

HDFS块损坏了,是如何修复

手动修复

hdfs debug

Usage: hdfs debug <command> [arguments]
These commands are for advanced users only.
Incorrect usages may result in data loss. Use at your own risk.
verifyMeta -meta <metadata-file> [-block <block-file>]computeMeta -block <block-file> -out <output-metadata-file>recoverLease -path <path> [-retries <num-retries>]

这个命令是隐藏的,可能是为了防止滥用,只让专业人员知道

修复命令

hdfs debug recoverLease -path /blockrecover/test.txt -retries 3

HDFS块损坏了,是如何修复

注意这个必须要指定到文件,目录是不行的

这样再次检查,就发现是ok了

block也恢复了

以上是关于HDFS块损坏了,是如何修复的主要内容,如果未能解决你的问题,请参考以下文章

查看修复HDFS中丢失的块

kfed修复损坏asm头部

kfed修复损坏asm头部

kfed修复损坏asm头部

sysaux表空间数据库块损坏/游离块的修复

hadoop 之hdfs数据块修复方法