线上状况
服务器信息
本人使用的各组件版本如下:
操作系统版本:centos7
CM版本:6.3.1
CDH版本:6.3.2(5.16.2版本实测也可以)
JDK版本:openjdk version “1.8.0_262”
服务器配置:
服务器 | CPU | 内存 | 磁盘 |
---|---|---|---|
cmserver | 8核 | 24G | /home/app 挂载300G |
master01 | 4核 | 24G | /home/app 挂载300G |
master02 | 4核 | 24G | /home/app 挂载300G |
slave01 | 4核 | 24G | /home/hdfsdata/data1 挂载50T |
slave02 | 4核 | 24G | /home/hdfsdata/data1 挂载50T |
slave03 | 4核 | 24G | /home/hdfsdata/data1 挂载50T |
slave04 | 4核 | 24G | /home/hdfsdata/data1 挂载50T |
注意:salve节点合理的内存配置是32G,这里写的24G是参数调整之前的配置。
线上的hbase集群运行时发现,当数据量写入比较大时,经常会报:OutOfMemory errors 的错误
报错截图如下:
报错时的集群负载情况如下:
HDFS写入情况如下,集群连续几天处于高负荷状态,每个DataNode平均读写总量约为200M/s。
集群网络IO情况如下,各网络接口中的总传送的字节数约为187M/s,各网络接口中的总接收的字节数约为232M/s。
可以看到,一天时间内,RegionServer 多次因内存不足而退出。
各RegionServer 的web响应时间如下,从图中可以看出响应时间有一定的波动,并且跟上图 RegionServer 因内存不足而退出在时间上是相对应的,当发生因内存不足而退出时,web响应时间也变的很高,会导致客户度读写超时。
Region Server占用的内存如下,基本稳定在4G左右,因为配置的最大内存就是4G。在发生因内存不足而退出的时间点上,驻留内存会有一些的降低。
hbase数据存储机制
要对HBASE集群进行调优之前,需要先了解HBASE的数据存储机制。
hbase compaction机制
hbase compaction参考文章:
https://blog.csdn.net/u011598442/article/details/90632702
Compaction机制的由来
HBase基于LSM-Tree(Log-Structured Merge Tree&#x