使用top命令檢查regionserver是否有足夠的cpu資源。mapreduce將占用大量cpu,並減少mapreduce任務的數量。
使用vmstat 1命令檢查si so的兩個交換列,並確認沒有交換。1表示每秒打印壹次。
使用jstat -gcutil pid 1000檢查fgct列,並確認regionserver中沒有長時間的gc暫停。如果gc時間超過zookeeper連接的最大超時,hbase會被掛起。
hbase中與GC相關的參數
修改
RegionServer因ZooKeeper會話過期而退出,這引起了很長壹段時間的頭痛。總結可能的原因:
zookeeper的maxSessionTimeout的默認值導致hbase regionserver超時。
在hbase中,經常會遇到regionserver掛機的情況。如果您查看日誌,您會看到這樣壹條錯誤消息。
指示與zookeeper連接的會話已超時,但在hbase-site.xml中zookeeper的超時設置為2分鐘
Zookeeper帶有兩個參數來設置會話的超時,這將在啟動時顯示在日誌中。
minSessionTimeout和maxSessionTimeout的計算方法如下。
會議
默認情況下,會話tickTime =秒,因此minSessionTimeout和maxSessionTimeout分別為4秒和40秒。
所以在hbase中設置超時是沒有用的,需要將zookeeper本身的maxSessionTimeout修改為120000,才能真正拉長zookeeper的會話超時。