问题描述:
在java客户端,利用写的简易代码进行HBase表格数据的增删改查可以通过,然后安排进行生产测试,这个时候出现问题,RegionServer总是不断自动推退出,即使将它进行重启,也会在重启后立马退出宕掉。
问题查找:
打开日志,都是INFO级别,很正常
这种情况应该是内存原因,然后去看hbase对内存的内置,发现cloudera manager默认的配置是50M,对于简单的增删改查测试,这个内存时没有问题的,但是对于生产测试,有很多时进行批处理的提交的,这就要求很高的内存,造成内存不够用,于是连内存溢出的日志都没有空间打印了
问题解决:
打开Cloudera manager中关于hbase对内存的配置,配置项如下:
其中客户端java堆大小是相对于客户端来说的,所以不需要很大,256M应该够用了。
Hbase REST Server 和Hbase Trift Server是除了java之外其他客户端访问HBase所需要的,所以也不需要很大,给个256M已经很不错了,后期根据访问的语言来进行修改。(如果有需要都调到2G)
Hbase Master的Java堆栈大小暂时可以1G,后期看日志,如果GC时间长,可以向上调整,主要看到时候集群的具体情况
Hbase RegionServer的java堆栈大小建议是调整到4G
问题后续:
参数修改之后,重新跑测试程序,顺利通过。
总结:
如果hbase的regionServer退出,并且没有打印错误日志,那么先检查hbase对内存设置