admin管理员组文章数量:1567250
根据美团等其他公司在Kylin社区的公开分享资料,跨HBase集群升级方案需要在新集群重新构建历史的Cube,或者有一段时间的服务停止。
小米在Kylin生产环境的跨HBase集群迁移中实现了无中断的平滑迁移,对业务的影响减到最低。
往期文章回顾:Talos网卡负载优化:基于个性化一致性哈希的负载均衡
背景
小米Kylin生产环境部署的是基于社区2.5.2修改的内部版本,所依赖HBase集群是一个公共集群,小米内部很多离线计算服务共享使用该HBase集群。由于Kylin已经产生超过6000张HBase表,给HBase的metadata管理造成了不小的压力,HBase metadata节点异常恢复的速度也受到极大的影响。随着业务的增长,Kylin HBase表继续快速增长,HBase集群的运维压力也越来越大。
为了应对快速增长的业务需求,我们决定将Kylin使用的HBase集群独立运维。同时,公共集群的HBase是基于社区0.98.11的小米内部版本,版本较旧。在集群独立过程中,HBase团队推荐使用最新基于社区2.2.0的小米内部版本 ,升级后HBase对超大metadata的管理也更友好。
目标与挑战
小米Kylin生产环境上运行着超过50个项目、300多个cube,服务于很多在线的BI或报表系统。本次升级希望尽量减小对业务的影响:
迁移数据和切换集群期间,查询服务不中断;
项目、数据模型和cube的新增、更改、发起构建、发起合并等操作不受影响;
数据构建任务可延后调度,但不能超过天级别;
Kylin存储在HBase中的数据主要有两类:Kylin metadata(元数据)、Cube预计算数据。
元数据中存储着所有的用户、项目和数据模型的信息;数据模型对应的结果数据表;数据任务的执行参数、状态和日志;查询使用的词典等重要信息。由于我们接入了很多自动化BI系统,这部分信息随时在变化。
Cube预计算数据是查询使用的结果数据,每一个segment对应着一张数据表,预计算的数据表生成之后不会变化。我们虽然可以通过HBase snapshot复制后在新集群restore的方式将数据复制到新的集群,但是由于生产环境的Kylin中的数据表比较多,且以每天400张的速度不断生成(注:因为有合并和过期删除策略,每天数据表的
版权声明:本文标题:小米Kylin平滑迁移HBase实践 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1725869637a1046140.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论