早上,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线程触发;暂时到此
|