關於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了就做分裂

以上思路,具體如何設置百度上很多,後續在本博客也會介紹。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章