hbase總結:hbase client訪問的超時時間、重試次數、重試間隔時間的配置

超時時間、重試次數、重試時間間隔的配置也比較重要,因爲默認的配置的值都較大,如果出現hbase集羣或者RegionServer以及ZK關掉,則對應用程序是災難性的,超時和重新等會迅速佔滿web容器的鏈接,導致web容器停止服務,關於socket的超時時間,有兩種:1:建立連接的超時時間;2:讀數據的超時時間。

可以配置如下幾個參數:

1. hbase.rpc.timeout:rpc的超時時間,默認60s,不建議修改,避免影響正常的業務,在線上環境剛開始配置的是3秒,運行半天后發現了大量的timeout error,原因是有一個region出現瞭如下問題阻塞了寫操作:“Blocking updates … memstore size 434.3m is >= than blocking 256.0m size”可見不能太低。

2. ipc.socket.timeout:socket建立鏈接的超時時間,應該小於或者等於rpc的超時時間,默認爲20s

3. hbase.client.retries.number:重試次數,默認爲14,可配置爲3

4. hbase.client.pause:重試的休眠時間,默認爲1s,可減少,比如100ms

5. zookeeper.recovery.retry:zk的重試次數,可調整爲3次,zk不輕易掛,且如果hbase集羣出問題了,每次重試均會對zk進行重試操作,zk的重試總次數是:hbase.client.retries.number * zookeeper.recovery.retry,並且每次重試的休眠時間均會呈2的指數級增長,每次訪問hbase均會重試,在一次hbase操作中如果涉及多次zk訪問,則如果zk不可用,則會出現很多次的zk重試,非常浪費時間。

6. zookeeper.recovery.retry.intervalmill:zk重試的休眠時間,默認爲1s,可減少,比如:200ms

7. hbase.regionserver.lease.period:scan查詢時每次與server交互的超時時間,默認爲60s,可不調整。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章