HBase工具之監控Region的可用和讀寫延時狀況

@dailidong@發表於2019-05-13
1、介紹HBase叢集上region數目由於業務驅動而越來越多,由於伺服器本身,網路以及hbase內部的一些不確定性bug等因素使得這些region可能面臨著不可用或響應延時情況。通過對region的監控,也可以反映出hdfs叢集的狀況


2、工具
org.apache.hadoop.hbase.tool.Canary 監控Region的可用和讀寫狀況
Usage: bin/hbase org.apache.hadoop.hbase.tool.Canary [opts] [table 1 [table 2…]]
where [opts] are:
   -help          Show this help and exit.
   -daemon        Continuous check at defined intervals.
   -interval <N>  Interval between checks (sec)

例如:執行${HBASE_HOME}/bin/hbase org.apache.hadoop.hbase.tool.Canary day_hotstatic   結果資訊如下:
read from region day_hotstatic,860010-2061300100_20131109_10_visit_00000027262,1386598604054.22af453addaff05464e585e7d148987b. column family c in 4msread from region day_hotstatic,860010-2061300100_20131201_2_exit_00000012418,1387389193938.9d19cd65ac9f9c3c2a04911cb73cfef7. column family c in 0ms


原理:它預設會取出Region的startKey,按照ColumnFamily分別執行一次Get操作,並列印出系統的延遲。對於Region出問題的情況下,會列印出failed的狀態。


2、不足
1)無法提供Region服務異常的實時報警。
2)未提供對於延遲的監控與報警。

基於此,我們就可以新增相應的報警功能,找出延遲超過最高限或者Region有問題的Table,並通過郵件或者message及時告警。
在出現hfile檔案無法seek或者Region offline的情況下,通過HBaseAdmin.assign(regionName)介面重新部署一次Region,這樣可以避免:
①.Region上storefile不一致(與hdfs上region顯示不一樣),在compaction異常或者split過程中。通過重新assign下可以重新載入這部分資料
②.Region處於Offline狀態,比如regionserver當機,叢集負載均衡等過程中region offline等


相關文章