問題概述
"新冠期間"遠程辦公,需要重新搭建一套ClouderaManager(CM)開發環境,一位測試同事發現HBase的RegionServer無法啟動,在CM界面上啟動總是失敗,觀察一下日志,也沒有什么明顯的報錯。我就專門看了一下。
排查思路
-
因為有opentsdb在讀寫Hbase Region Server,我一開始懷疑RegionServer啟動過程中在恢復一些數據,這個時候就有組件對它讀寫操作,可能壓力較大起不來。后來停掉了opentsdb,依然如此,日志也沒有明顯報錯,打着打着就斷了,再看進程就沒了。
-
后來我在界面上又重啟了一下,迅速
jps -mlv
命令查看一下啟動參數,這一看就明白了居然給的堆內存50MB
,難怪起不來,啟動過程中應該就OOM
了,很快,再執行一次jps -mlv
命令 這個HRegionServer
進程已經退出了。 -
於是我在網上搜了一下,果然
ClouderaManager(CM)
給HBase默認堆內存50M,豁然開朗。
解決
根據實際情況修改一下HMaster、HRegionServer堆內存大小,在界面上重啟,我這次用jps -mlv
命令觀察一下,配置生效了,然后看日志,正常啟動中,至此,問題解決。
總結
有些時候 程序一啟動就掛掉,而且沒有什么明顯報錯日志,可能要觀察一下程序的啟動參數等。
比如說內存給的太小,程序壓根就不能正常啟動(OOM異常退出);
或者內存給的太大,向操作系統申請內存失敗直接被kill掉。