1.前言
最近Hbase集群经常有问题于是作者把遇到的问题进行了汇总,避免其他同学在使用Hbase的过程中遇到相同的问题时不知道如何解决。
2.优化
2.1 Hbase启动半小时宕掉
Hbase集群底层使用Azure Blob Storage进行底层数据存储及查询,RegionServer在运行过程中经常出现OOM,Heap Dump分析发现每个HStore中的AbfsInputStrem占用4MB空间导致堆内存撑爆。查看hadoop-azure源码发现fs.azure.read.request.size默认配置4MB,调整配置64KB后问题解决也可以配置再小。2.2 Hbase大合并队列积压过多
【1】Hbase集群运行一周后(默认)触发大合并导致大合并队列增加属于正常现象,但是在运行一段时间后问题依然存在没有下降趋势。怀疑大合并线程默认1太少了,动态调整配置hbase.regionserver.thread.compaction.large为3效果不明显。2.3 Hbase归档日志不正常清理
【1】统计Hbase集群占用的数据存储时发现数据存储达到400多T。2.4 Hbase的oldWal日志不正常清理
【1】查看HMaster日志发现replicationLogCleaner在进行清理是出现访问zookeeper会话失效异常。3.配置
3.1 动态配置
需要修改的参数加入到hbase-site.xml中,然后在hbase shell中执行update_config指定regionserver名称,如整个集群都生效可使用update_all_config命令。3.2 日志配置
访问HMaster UI或RegionServer UI在Log Level进行配置。4.总结
在Hbase集群出现问题时我们可以结合日志、源码、社区分析原因并给出解决方法,而且日志输出级别、参数配置都支持动态修改可以更快的帮助我们解决问题。