1. 程式人生 > >hbase問題排查思路

hbase問題排查思路

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 命令強烈不建議生產線使用

HBCK –案例 

RIT處理套路

  • 套路一:pending_open(或pending_close)狀態的region通常可以使用hbck命令修復

  • 套路二:failed_open (或failed_close)狀態的region通常無法使用hbck命令修復

  • 套路三:failed_open (或failed_close)狀態的region需檢查日誌確認region無法開啟關閉的具體原因

  • 套路四:region處於RIT狀態但hbck顯示正常,把zk上的region-in-transaction節點相關region刪除,重啟master

HBase-日誌分析

  • 監控分析只能告訴你可能是什麼原因,間接原因

  • 日誌分析才能告訴你問題的精確原因,最直接原因。

       一般的問題都能在日誌中找到直接原因,再根據原因找答案。

  • 通過日誌分析可以弄清楚事情的來龍去脈,監控不會告訴你那麼多