记一次hbase陷入永久RIT
事情大概是这样的:
存储程序在往hbase里存储的时候报错,大概都是region的问题,count表也能看到有错误
然后百度用hbck修复,中间有人说了个先disable表,我把我所有的表都先disable了,于是乎,噩梦开始了,发现hbck修复一直报错,在等待region重新分配
我领导说,谁告诉你hbck修复要disable?当时我就傻眼了,然后我想enable,还是报错
按照网上说的删除zookeeper里的信息,没有用,我知道不是那个原因,但是生产环境又不敢随意重启,网上找原因找了三天,发现没有多少解决办法,最后跟领导说,估计只能重启了,然后领导同意,我重启,hbase开始启动,一切恢复正常
总结原因,估计就是region在变动的时候被我disable了,所以……
原文参考
http://hbasefly.com/2016/09/08/hbase-rit/?lwroby=hlphw
1. 永久性掉入RIT状态其实出现的概率并不高,都是在一些极端情况下才会出现。绝大部分RIT状态都是暂时的。
2. 一旦掉入永久性RIT状态,说明一定有根本性的问题原因,只有定位出这些问题才能彻底解
决问题
3. 如果Region长时间处于PENDING_CLOSE或者CLOSING状态,一般是因为RegionServer在关闭Region的时候遇到了长时间Compaction任务或Flush任务,所以如果Region在做类似于Major_Compact的操作时尽量不要执行unassign操作,比如move操作、disable操作等;而如果Region长时间处于FAILED_OPEN状态,一般是因为HDFS文件出现异常所致,可以通过RegionServer日志以及hbck定位出来
阿弥陀佛。