在實際環境中遇到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命令修補刪除資料形成的空洞

2、恢復資料(社群正在開發中,未有穩定版整合)

後續如果有相關內容會在此篇日誌更新,先mark一下