贝壳Kylin性能优化:HBase挑战与解决方案

1 下载量 118 浏览量 更新于2024-08-28 收藏 1.25MB PDF 举报
"Kylin在贝壳的性能挑战和HBase优化实践" 在贝壳公司,Kylin作为公司的在线分析处理(OLAP)引擎,自2017年起就开始提供服务。目前,贝壳拥有超过100个Kylin实例,运行800多个Cube,存储着300多TB的单副本数据,并且其HBase集群由30多个节点组成,每天处理的查询量高达2000多万次。自2018年以来,查询请求量增长了19倍,而99.7%以上的查询响应时间在3秒内,最高可达99.8%。 随着查询量的激增,Kylin面临着一系列性能挑战。其中,主要的问题之一是表或Region的不可访问性。在Cube构建过程中,有时会出现关键表的特定Region无法访问,导致构建失败。此外,查询期间,部分用户请求也会因数据表Region的不可访问而超时。旧Kylin集群中的Region数量过多,每台机器平均承载1万个Region,这严重影响了HBase集群的建表和删表速度,以及清理程序的效率。 针对这些问题,贝壳采取了以下优化措施: 1. 删除无用表以减少Region数量。由于过多的Region对HBase性能造成负担,他们通过清理无用表,成功减少了10万个Region,将总数降低至6万个以下,显著提升了HBase的操作效率。 2. 缩短HBase表的清理周期。从每周清理一次变为每天清理,同时定期合并Cube,进一步减少HBase表的数量和Region数量,有效缓解了构建时的问题。 3. 升级HBase版本至1.4.9,利用RSGroup功能实现重点表和数据表的计算隔离,提高系统资源的利用率。 4. 关闭HBase的自动Balance功能,改为仅在夜间进行手动平衡操作,以避免在业务高峰期间影响服务质量。 这些优化策略不仅解决了当前的性能瓶颈,也为应对未来更大的查询负载提供了稳定的基础。通过持续监控、调整和优化,贝壳能够确保Kylin在满足高并发查询需求的同时,保持高效稳定的运行状态。这一实践对于其他大型企业面临类似挑战时,提供了宝贵的参考经验。