報錯如下

解決
1、查看 hbase 的請求數(shù)量是否過高,查看Request Per Second 并不高,排除熱點問題,

2、檢查表是否存在一致性問題
hbase hbck 檢查輸出所以ERROR信息,每個ERROR都會說明錯誤信息
hbase hbck -details hbase:meta
3、使用hbase用戶嘗試修復,在這之前要先確定hdfs上的tableinfo,regioninfo,region等數(shù)據(jù)都存在
修復.META.表損壞
META.表損壞的時候,HBase將啟動失敗,這種情況下要使用OFFlineMetaRepair工具創(chuàng)建新的META.表
該工具的工作原理是找到HBase在HDFS的主目錄,加載Region的元數(shù)據(jù)文件信息,然后重新創(chuàng)建新的META.表:
hbase hbck -repair hbase:metahbase org.apache.hadoop.hbase.util.OffileMetaRepair注意重啟hbase關閉echo "balance_switch false" | hbase shell,重啟之后開啟true,并解決本地化低問題
補充
hbase 一致性
.meta表和regionserver持有的region信息不一致,region缺失空洞,region重疊,meta元數(shù)據(jù)丟失等檢查
hbase hbck
Status:OK,表示沒有發(fā)現(xiàn)不一致問題。
Status:INCONSISTENT,表示有不一致問題。優(yōu)雅下線
regionserver hbase2.x
graceful_stop.sh做的工作是逐個地講Region從RegionServer中移除,先移除一個Region,然后將這個Region安置到一個新的地方,再移除下一個,直到Region被全部移除。最后關閉RegionServer整體修復
hbase hbck -repair hbase:meta
空洞修復hbase hbck -repairHoles hbase:meta
hbase hbck -repairShortcut for -fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps -fixReferenceFiles -fixHFileLinks -fixTableLocks -fixOrphanedTableZnodes
hbase hbck -repairHolesShortcut for -fixAssignments -fixMeta -fixHdfsHoles
hbase hbck -repairHoles 修復holes
1、hbase hbck -fixMeta 修復meta表信息,利用regioninfo信息,重新生成對應meta row填寫到meta表中,并為其填寫默認的分配regionserver。
2、hbase hbck -fixHdfsHoles 修復region缺失,利用缺失的rowkey范圍邊界,生成新的region目錄以及regioninfo填補這個空洞。
3、hbase hbck -fixAssignment 把這些offline的region觸發(fā)上線,當region開始重新open上線的時候,會被重新分配到真實的RegionServer上 , 并更新meta表上對應的行信息。
hbase hbck -repair 包含以上空洞修復同時還包括修復tableinfo缺失,regioninfo缺失,region重疊等整體修復
1、hbase hbck -fixTableOrphans 先修復tableinfo缺失問題,根據(jù)內(nèi)存cache或者hdfs table 目錄結構,重新生成tableinfo文件。
2、hbase hbck -fixHdfsOrphans 修復regioninfo缺失問題,根據(jù)region目錄下的hfile重新生成regioninfo文件3、hbase hbck -fixHdfsOverlaps 修復region重疊問題,merge重疊的region為一個region目錄,并從新生成一個regioninfo。
經(jīng)過以上命令修復,一定要重啟hbase,否則監(jiān)控頁還會有大量的region in RIT