写点什么

【Hbase】运维问题汇总

作者:扬_帆_起_航
  • 2024-07-31
    北京
  • 本文字数:942 字

    阅读完需:约 3 分钟

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】查看日志发现合并限流策略引起合并时间过长,继续动态调整限流参数 hbase.hstore.compaction.throughput.higher.bound、hbase.hstore.compaction.throughput.lower.bound 后大合并队列在几小时后恢复正常。

2.3 Hbase 归档日志不正常清理

【1】统计 Hbase 集群占用的数据存储时发现数据存储达到 400 多 T。

【2】查看 HMaster 日志发现出现清理异常,但是原因不够明确。

【3】动态调整日志级别继续查看日志发现问题出现在 SnapshotHFileCleaner。

【4】结合源码及日志原因是.hbase-snapshot 目录下出现非法目录 T_DRIVING_STATISTICS_snap_...手动删除此目录后 HMaster 恢复正常删除。

2.4 Hbase 的 oldWal 日志不正常清理

【1】查看 HMaster 日志发现 replicationLogCleaner 在进行清理是出现访问 zookeeper 会话失效异常。

【2】动态调整日志级级别发现上述异常会引起 oldWal 日志不正常清理会导致 HDFS 存储使用上升风险。

【3】查看 HBASE-25612 通过切换 HMaster 临时解决,根本上避免可升级 Hbase 版本或者根据 HBASE-23340 进行编译打包滚动重启集群。

3.配置

3.1 动态配置

需要修改的参数加入到 hbase-site.xml 中,然后在 hbase shell 中执行 update_config 指定 regionserver 名称,如整个集群都生效可使用 update_all_config 命令。

3.2 日志配置

访问 HMaster UI 或 RegionServer UI 在 Log Level 进行配置。

4.总结

在 Hbase 集群出现问题时我们可以结合日志、源码、社区分析原因并给出解决方法,而且日志输出级别、参数配置都支持动态修改可以更快的帮助我们解决问题。

发布于: 刚刚阅读数: 7
用户头像

尘世中一个迷途小书童! 2020-03-09 加入

大数据领域从业者,近几年一直从事Kafka领域相关工作

评论

发布
暂无评论
【Hbase】运维问题汇总_扬_帆_起_航_InfoQ写作社区