在實際環境中遇到hbase fbck檢查報hdfs數據塊與META表信息不一致的錯誤。表現就是數據寫入無法進行。
經過檢查,發現在.META.表中對應的一些region塊的子列少了regioninfo這一列;同時在hdfs的出錯region文件夾下查看發現本來該是.regioninfo的文件夾變成了.tmp文件夾。在網上查了些資料,發現是region做分裂的時候失敗,導致regioninfo信息丟失,.META.表就無法記錄該region的startkey,endkey等信息。
淘寶發佈了兩個補丁,來避免這個錯誤出現。0.90.5版本已經集成了此修改。HBASE-4562,HBASE-4563
但是對於已經發生的錯誤,如何恢復集羣正常使用。有兩種方案:
1、移除異常數據(較容易)
1)首先,將hdfs上那些不一致的數據庫進行刪除,或者mv到別的位置
2)對應的region信息在META表中進行刪除
3)使用hbase merge命令修補刪除數據形成的空洞
最後這一步是引用別人的blog,在此貼出鏈接:http://blog.csdn.net/a221133/article/details/7085257
2、恢復數據(社區正在開發中,未有穩定版集成)
後續如果有相關內容會在此篇日誌更新,先mark一下