Hbase作为一个分布式的列式存储数据库,是大数据平台最常用的组件之一,具有严格一致的读写、线性模块化的扩展、自动故障切换等特点,在一些针对超大数据集的实时读写、随机访问的场景下使用较多。
然而现实环境中的各种问题总会影响其正常的提供服务,比如常见的热点问题、Region过多问题、Full GC问题等。如何保障Hbase稳定的运行就成为了许多开发人员需要共同面对的问题。本文围绕影响Hbase运行的问题之一——Full GC问题进行探讨,提出解决方法,以期有所借鉴和参考。
Hbase是一个低延迟响应的分布式列式存储数据库,主要用来存储非结构化和半结构化的松散数据,底层依赖HDFS进行数据存储,通过Zookeeper进行分布式协同服务。
其角色类型主要包括Master和RegionServer。每个RegionServer向Zookeeper进行注册,由Zookeeper实时监控每个RegionServer的状态并通知给Master,Master通过Zookeeper随时感知各个RegionServer的工作状态。
Hbase具体的运行机制如下图所示。
图1 Hbase架构图(图片来源于《Hbase详细架构图解》)
Hbase使用Java语言进行开发,而Java语言具有自动垃圾回收(GC)的特性。垃圾回收