hbase hbck及region RIT處理


hbase hbck主要用來檢查hbase集群region的狀態以及對有問題的region進行修復。

 

hbase hbck :檢查hbase所有表的一致性,如果正常,就會Print OK

hbase hbck -details:檢查hbase所有表的一致性,並且輸出詳細報告。
hbase hbck table1 table2:指定檢查某些表,可以輸入多個表,用空格隔開。
 
HBCK - HBCK檢查什么?
(1)HBase Region一致性
  • 集群中所有region都被assign,而且deploy到唯一一台RegionServer上
  • 該region的狀態在內存中、hbase:meta表中以及zookeeper這三個地方需要保持一致
(2)HBase 表完整性
  • 對於集群中任意一張表,每個rowkey都僅能存在於一個region區間
 
HBCK – 常用檢查命令
  • ./bin/hbase hbck
  • ./bin/hbase hbck –details
  • ./bin/hbase hbck TableFoo TableBar
 
HBCK - 局部低危修復
  • -fixAssignments :修復沒有assign、assign不正確或者同時assign到多台RegionServer的問題region。
  • -fixMeta :主要修復.regioninfo文件和hbase:meta元數據表的不一致。修復的原則是以HDFS文件為准:如果region在HDFS上存在,但在hbase.meta表中不存在,就會在hbase:meta表中添加一條記錄。反之如果在HDFS上不存在,而在hbase:meta表中存在,就會將hbase:meta表中對應的記錄刪除。
 
HBCK –高危修復 
  • region區間overlap相關問題的修復屬於高危修復操作,因為這類修復通常需要修改HDFS上的文件,有時甚至需要人工介入。
  • 對於這類高危修復操作,建議先執行hbck -details詳細了解更多的問題細節,再執行相應的修復命令
  • -repair|-fix 命令強烈不建議生產線使用

案例1:

 

案例2:

 

RIT處理套路
  • 套路一:pending_open(或pending_close)狀態的region通常可以使用hbck命令修復
  • 套路二:failed_open (或failed_close)狀態的region通常無法使用hbck命令修復,需檢查日志確認region無法打開(關閉)的具體原因
  • 套路三:region處於RIT狀態但hbck顯示正常,把zk上的region-in-transaction節點相關region刪除,重啟master
 
HBase-日志分析
  • 監控分析只能告訴你可能是什么原因,間接原因
  • 日志分析才能告訴你問題的精確原因,最直接原因。
       一般的問題都能在日志中找到直接原因,再根據原因找答案。
  • 通過日志分析可以弄清楚事情的來龍去脈,監控不會告訴你那么多

 

 

 

HBase常見問題
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM