设为首页 加入收藏

TOP

机房断电导致HBase集群region offline故障解决
2019-04-28 01:51:20 】 浏览:63
Tags:机房 断电 导致 HBase 集群 region offline 故障 解决

环境描述:ambari集群+hdfs+zookeeper+hbase

错误描述:hdfs 存在部分 corrupt replica blocks/missing blocks/under replicated blockes

Block Errors 31 corrupt replica / 30 missing / 31 under replicated

hbase存在大量的offline regin 和 少量missing region。

修复方法:

1、hdfs修复:

退出hdfs安全模式,不然可能namenode无法启动。

su fdfs
hadoop dfsadmin -safemode leave

查看report报告

hadoop dfsadmin -report

Under replicated blocks    副本数少于指定副本数的block数量
Blocks with corrupt replicas   存在损坏副本的block的数据
Missing blocks        丢失block数量

核心步骤1:更改已经上传文件的副本数,修复Missing blocks

hadoop fs -setrep -R 3 /

核心步骤2:删除已损坏的block

hdfs fsck -delete 

至此,hdfs修复,查看ui,上述3个指标应该都为0.

2、hbase修复:

尝试传统的修复方法:

./hbase hbck -fixMeta
./hbase hbck -fixAssignments

以上指令无效,并报错如下

ERROR: There is a hole in the region chain between TestTable,2,1415170922328.3c1b2a210888171d142059912e2faba1. and TestTable,3,1415171044919.da852e5b0034a2ca83f6966280454b4a. You need to create a new .regioninfo and region dir in hdfs to plug the hole.

核心步骤1:

disable工作空间下所有的表,并停止habse服务

进入zookeeper删除/hbase节点

#进入zkcli
sh zkCli.sh
#查看目录znode
ls /
#删除指定znode
rmr  /hbase

删除hdfs下各个hbase表的recovered.edits文件

hadoop fs -rm -R /hbase/data/default/TABLE_NAME/*/recovered.edits

删除WALs下所有的日志

hadoop fs -rmr /hbase/WALs/*

删除Meta表下的recovered.edits文件

开启habse服务,enable所有的表,执行如下修复指令:

./hbase hbck -repair

查看webui,应该一切正常了,测试hbase表的读写,所有数据恢复,整个过程会丢失少量的数据,原因是hdfs删除了坏的无备份的block(默认为3备份),至此,整个修复完成。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇HBase-5.提高HBase客户端的读写性.. 下一篇0.98 HBASE中reversedScan的问题..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目