HDFS数据恢复之Block Missing
2017-03-29 22:11
197 查看
背景
报警得知2台机器宕机,推测是IDC同事在处理之前的报修。一台是系统盘故障,12块数据盘正常。一台是某块数据盘损坏。两台机器宕机时间相差不大,副本未自动补偿完毕,导致有27个block丢失,发生Block Missing,若干新旧文件发生corrupt。解决方案
获得missing block列表,通过namenode即可获得。通过ramos进入系统盘损坏的机器,将全部的missing block找到,依照原目录打包。
将上述文件拷贝至新机器,恢复正常目录结构,并部署和启动datanode。
稍等片刻,跟踪新节点日志,并执行fsck,确定所有的missing block均已找到,文件无corrupt,文件系统healthy。
将新机器的datanode执行decommission,下线即可。
总结
一般情况下,很难出现missing block。HDFS拥有较为健壮的自愈能力。但当该问题出现时,一般较难恢复。如果磁盘尚可读取,能找到对应的block和meta文件,依照原始目录,尚能恢复。曾遇到执行多个setrep和balancer时,发生missing block的诡异问题。
试验过程中,仅将一个block及其meta放置于旧datanode的数据目录下,未能被识别,原因待查。
注:hdfs提供有debug工具,提供verify和verifyMeta,可以验证block与meta文件的一致性。
相关文章推荐
- hdfs数据误删分析与恢复
- HDFS和Hbase误删数据恢复
- Cloudera 5.8.3 SolrCloud+HDFS的索引数据备份和恢复。(需重启solr进程。)
- 恢复HDFS误删数据
- [实战案例]从冷备份的hdfs数据中恢复到原来的hbase表
- HDFS数据恢复模式
- HDFS数据恢复模式
- cdh集群节点系统文件损坏,重装系统恢复Hdfs数据
- mysql数据恢复思想
- id 自增------删除数据后恢复到删除前自增id
- 通过日志恢复MS SQL数据案例
- 数据备份与数据恢复产品——程序猿的必备品
- Linux 数据恢复 Extundelete
- oracle数据文件recover恢复过程
- 实战 SQL Server 2008 数据库误删除数据的恢复
- u盘 数据恢复
- 数据丢失后都能恢复吗?
- 使用mysqlbinlog工具进行基于位置或时间点的数据恢复
- SQL Server灾难恢复:重创历史性数据
- Mysql数据备份与恢复