关于HBase报错org.apache.hadoop.hbase.NotServingRegionException的异常分析

近期和一个朋友交流,他们的业务系统使用HBase做为底层的数据存储。高峰期的时候偶尔出现org.apache.hadoop.hbase.NotServingRegionException,严重影响了业务系统的正常运行。分析日志后得到这样的错误:

1、刚开始报,org.apache.hadoop.hbase.NotServingRegionException ********,is not online

2、然后报 ,org.apache.hadoop.hbase.NotServingRegionException ***********, is closing

其实这个错误在网上很多的解释,每个说法各不相同。昨夜翻看了下Hbase的源码,在这里给出权威的解答偷笑和解决方案。

当Hbase运行时候,region达到了设置的文件大小后,就要开始分裂了。分裂的过程是:

1)老region开始下线 ,这里就对应了报错日志中的is not online

2)老region分裂

3)老region关闭,这里就对应了报错日志中的 is closing

其实罪魁祸首还是region分裂导致的,那么问题来了,Hbase肯定是要分裂的,如何避免这个问题再次发生呢?

以下给出解决措施,以hbase0.98版本为例:

1、设置按个region的大小为无限大,其实也就是不要region分裂了

2、半夜的时候通过程序来检测每个region的大小,比如20G为一个region文件大小,超过20G了就做分裂

以上思路,具体如何设置百度上很多,后续在本博客也会介绍。



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HADOOP_83425744/article/details/49942695
个人分类: hbase
上一篇大型网站核心的架构(6-2)高性能
下一篇hbase for hadoop2.X 使用 protocolbuffer 自定义filter
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭