其他
小米 Kylin 平滑迁移 HBase 实践
The following article is from 小米云技术 Author 周康
根据美团等其他公司在Kylin社区的公开分享资料,跨HBase集群升级方案需要在新集群重新构建历史的Cube,或者有一段时间的服务停止。小米在Kylin生产环境的跨HBase集群迁移中实现了无中断的平滑迁移,对业务的影响减到最低。
往期文章回顾:Talos网卡负载优化:基于个性化一致性哈希的负载均衡
注:明晚(1.16,19点)将有「Kylin 初入门系列直播课程」之「如何加速业务指标分析」,欢迎戳此处报名!
迁移数据和切换集群期间,查询服务不中断; 项目、数据模型和cube的新增、更改、发起构建、发起合并等操作不受影响; 数据构建任务可延后调度,但不能超过天级别;
Kylin metadata不断变化,Cube预计算数据存量巨大且在持续增加; metadata可以做到秒级别同步,Cube预计算数据只能做到天级别(存量)和小时级别(增量)的同步; metadata新旧集群保证一致,Cube预计算数据迁移过程中保障可用;
通过HBase replication保证新旧集群Kylin metadata的数据同步
Kylin支持连接多个HBase集群
任务调度支持安全模式
>>>> 迁移步骤
迁移步骤
HBase团队搭建好基于HBase 2.2的独立HBase集群 HBase团队添加新老集群kylin_metadata表的异步replication; HBase团队通过snapshot + restore同步HBase其他表,并更新coprocessor; 在测试节点上回放生产环境查询请求,验证新集群HBase数据表可正常提供查询; 开启JobServer的安全模式,禁用新的任务调度; 滚动升级QueryServer,切换至兼容新旧HBase; 等待安全模式下所有任务运行完成,切换JobServer至新HBase并关闭安全模式; 等待表全部迁移完成,使用KylinHealthCheck工具检查HBase表,确认所有在用cube segment对应的HBase表存在; 检查确认后,从Kylin去除旧HBase集群配置; 旧HBase集群数据保留一段时间,最后清理删除。
>>>> Kylin metadata的一致性验证
Kylin metadata的一致性验证
>>>> 新HBase数据表的可用性验证
新HBase数据表的可用性验证
>>>> HBase2 protobuf变更带来的影响
HBase2 protobuf变更带来的影响
>>>> HBase写大文件的异常
HBase写大文件的异常
>>>> 部分数据构建任务失败
部分数据构建任务失败
后续改进
we want you
北京武汉均有职位,欢迎优秀的你加入~
联系方式:computing-hr@xiaomi.com
活动报名
1 月 16 日(本周四)19 点
Kylin 初入门系列直播课程
第 3 课:如何加速业务指标分析
↓↓↓戳此处免费报名↓↓↓