早上,Web頁面沒有了數據,查看storm入庫日志,看到kafka消費者隊列已經滿了,想到可能是剛剛使用的hbase掛了,登錄CDH管理頁面,果然已經掛了,看運行狀態歷史,凌晨12點和4點分別有兩次狀態不正常的記錄;
看到出了問題,第一反應就是萬能大法——重啟hbase,結果RegionSever還是起不來;看來得硬着頭皮搞一波;檢查了一番Log文件,發現以下問題
java.lang.OutOfMemoryError: Java heap space
第一反應是jvm內存不夠了,在CDM嘗試配置RegionServer,找到下面這項
默認是256M,修改成1G試試,重啟RegionSever,結果正常;看來就是默認的JVM內存分小,問題暫時解決。
中午,發現CDM里面報警出現了RegionServer出現RegionServer存在安全隱患;看RegionServer日志,發現有頻繁flush操作,還有Memstore請求flush排不上隊,查找日志發現如下:
because overview has an old edit so flush to free WALs after random delay 182886ms
查找網絡資料:“這是很明顯的寫入量很小,因為周期性flush線程觸發的行為,比如store很久沒更新了而最新的edit距今超過閾值(默認一小時),那么就會delay一個random時間去執行”
接下來,查看歷次觸發的flush產生的文件大小
grep 'org.apache.hadoop.hbase.regionserver.HStore: Added hdfs' hbase-cmf-hbase-REGIONSERVER-${FQDN_HOSTNAME}.log.out | awk -F 'filesize=' '{print$2}'
普遍都在1M左右,看來不是因為Memstore大小引發的flush,查看報警規律,發現大概一小時觸發一次報警,應該是周期性flush線程觸發;暫時到此