内容简介:Telecoming 是一家致力于电信运营商计费技术的西班牙公司,核心业务涵盖内容合作、支付技术部署和在线广告等数字娱乐领域,拥有专业的效果营销团队,业务遍布13个国家。使用 Apache Kylin 帮助 Telecoming 大幅度缩短了数据查询时间,加速业务决策,原作者:Iñigo Martinez原文:https://kylin.apache.org/blog/2019/05/29/kylin-2.4.1-to-2.6.1/
Telecoming 是一家致力于电信运营商计费技术的西班牙公司,核心业务涵盖内容合作、支付技术部署和在线广告等数字娱乐领域,拥有专业的效果营销团队,业务遍布13个国家。使用 Apache Kylin 帮助 Telecoming 大幅度缩短了数据查询时间,加速业务决策, 扩大了大数据对公司运营的影响力。下文来自 Telecoming 的 Iñigo Martinez,对 Kylin 版本升级进行了经验分享。
原作者:Iñigo Martinez
原文:https://kylin.apache.org/blog/2019/05/29/kylin-2.4.1-to-2.6.1/
翻译:Rachel、敏丞( 翻译经原作者授权,对原文略有改动)
2017 年底,Telecoming 开始在一个新的商业智能项目中使用 Apache Kylin 作为主要的分析数据库。我们最初使用基于 MySQL 的定制报告引擎,到后来基于 AWS Redshift,最后采用完全基于 Hadoop 的解决方案,Kylin 用于生成报表前的最后一环。我们最开始使用 Kylin v2.2.1,2018年年中迁移到 v2.4.1,并于上月迁移到 v2.6.1。Kylin v2.2.1 是我们使用的第一个版本,有一些恼人的 bug 和稳定性问题。这不仅是因为版本不太成熟,还因为我们没有维护 Kylin 的经验。我们在 Cube 级别进行了一些设计更改和优化(在此感谢 Alberto Ramon),帮助我们很大程度上提高了性能和稳定性,但在之后的版本中仍然存在一些问题。
以下是我们的升级经验。
升级目的 :
1)Bug 修复。尤其是在创建中间 Hive 表时与视图相关的一个 bug。
2)性能增强。这是大家总追求的。
3)对 HBase 的依赖性降低。HBase 是我们的主要问题来源。部分原因是由于 EMR(AWS)依赖 S3 作为主要的存储(现在我们使用 HDP)。Kylin 经常需要访问表元数据,HBase 的响应速度不稳定。因此,我们希望避免在 HBase 存储元数据,通过 JDBC 将元数据存储到 MySQL。
升级计划:
1)尽量减少停机时间。由于我们的用户大量使用报表系统,因此最大限度地减少 Kylin 的停机时间是非常必要的。
2)易于回滚。如果升级失败,我们需要一种简单的回滚方法。
升级步骤:
1)我们备好一个装有 Kylin v2.6.1 的新 AWS 实例,该实例已经完成了配置和调整。当然,之前我们已经运行了几周的 Kylin v2.6.1 原型并调整了所有配置文件以便正常运行。我们开始迁移时停止了该新实例。它还有一个全新的本地 MySQL v5.7 用于元数据存储,而不是依赖于 HBase。
2)我们停止了 Kylin v2.4.1 上的所有 Cube 构建。我们等到那些正在进行的任务完成了。 因此,在查询方面,虽然没有添加更多数据,但一切正常。
3)当所有构建完成后,我们对 Kylin 元数据(metastore.sh backup)执行了完整备份。 这只花了2分钟。
4)我们对所有 HBase 表执行了 HBase 快照。因此,在升级版本完全失败的情况下回滚就变得简单:恢复元数据+克隆快照到新表(删除已被升级的表)。因为可以在一个命令中运行所有快照命令,因此此过程只需几秒钟。
5)我们在新的 Kylin v2.6.1 实例(metastore.sh restore)上执行了元数据恢复。通过这种方式,所有元数据都可以在几分钟内自动从基于 HBase 的存储迁移到基于 JDBC 的存储。
6)我们从 v2.6.1 升级了 Coprocessor(使用 kylin.sh org.apache.kylin.storage.hbase.util.DeployCoprocessorCLI default all)。
7)我们启动了新版本的 Kylin,并检查确认一切就绪。我们可以查询所有 Cube 并得到正确的响应。
8)完成所有测试后,我们将 DNS 条目指向新的 Kylin v2.6.1 实例,并从中恢复构建过程。当然,Kylin v2.4.1 已被关闭。几天后,我们删除了 HBase 快照以释放存储空间。
可以想象,从查询视角来看,停机时间几乎为零,因为所有的 Kylin 查询都是在 v2.4.1 运行,直到 v2.6.1 准备好为请求提供服务。
回滚计划(实际并未使用):
回滚计划非常简单。如果出现问题,我们将切换到旧版本,我们将从之前拍摄的快照中恢复所有 HBase 表。此快照包含 HBase 元数据表,因此无需还原元数据。
升级结果:
1)Kylin v2.6.1 比 v2.4.1 更稳定。我们在服务器级别发现的唯一问题是平台级别的内存问题。现在,许多步骤都是基于 Spark 的,并在启动作业时占用一些额外的内存。我们通过调整 Kylin v2.6.1 的 JVM(-Xmx, -Xms)参数轻松解决了此问题。
2)由于 Cube 构建步骤的改进,Cube 构建得更快。
3)UI 响应非常快。以前浏览 Cube 构建列表最多需要10秒,现在它几乎能瞬间完成。
4)解决了一些 bug。以下两个尤为突出:
-
视图中的 Hive 中间表没有添加 uuid 后缀。如果将同一个表用于其他构建,此表可能会在清理阶段被以前的 Job 意外删除,导致构建失败。
-
参数“kylin.job.cube-auto-ready-enabled”无效。在构建一个 Segment 后,它会被自动启用,我们有时不希望这样。
结语:
总的来说,升级过程简单快捷。 然而, 为了测试升级是否会造成潜在的问题,必须进行大量前期工作。 因此,我们构建了一个并行环境,以检查所有新功能是否正常工作,bug 是否得到解决。我们调整了配置文件以满足新版本 Kylin 的要求,例如将元数据存储从 HBase 替换为 MySQL。
升级 Kylin 版本总体来说较简单,但是, 必须仔细阅读文档 ,因为有时需要额外的步骤,当然还要 检查参数 ,以便检测新版本中必须考虑的新特性或变化。为了能在升级失败后迅速恢复,做好备份和(经过测试的)回滚计划也非常重要。
从我们用户的角度来看,解决得最成功的问题是 UI 响应。 我们非常高兴看到 Kylin 界面现在能如此快速流畅地响应。从运维方面来看,使用 MySQL 作为元数据存储而不是 HBase 也是一个很大的改进。在 HBase 上编辑 Json 内部的参数可能很困难,因为能编辑修改 HBase 表的应用程序不多。
往期案例与实践
有了 Kylin+Saiku,妈妈再也不用担心我的多维 OLAP 平台
OLAP 引擎这么多,麻袋财富为什么选择用 Kylin 做自助分析?
解读 Kylin 3.0.0 | 更敏捷、更高效的 OLAP 引擎
首届 Kylin Data Summit 大会@上海将在 7 月 12 日正式拉开帷幕,届时 Gartner、微软、eBay 等企业的大咖将带你洞悉数据分析的未来趋势,包含针对增强分析以及云上分析的洞见,更有金融、制造、零售、互联网等行业的知名企业分享自己的成功经验。长按识别下方二维码了解活动详情!
#社区福利# Apache Kylin 社区 Contributor 可联系 K 小助(微信号:uncertainly5)获取赠票,添加为好友后需回复“赠票”。
以上所述就是小编给大家介绍的《Kylin 版本升级 | 从 v2.4.1 到 v2.6.1》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 手动升级Coreos版本
- 升级Debian版本操作总结
- npm 升级版本号技巧
- 悟空 CRM 11.0 版本-20210502 升级内容【JAVA 版本】
- 升级Tensorflow到1.2版本
- GCC升级至高版本
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入浅出Rust
范长春 / 机械工业出版社 / 2018-8-21 / 89.00元
本书详细描述了Rust语言的基本语法,穿插讲解一部分高级使用技巧,并以更容易理解的方式解释其背后的设计思想。全书总共分五个部分。 第一部分介绍Rust基本语法,因为对任何程序设计语言来说,语法都是基础,学习这部分是理解其他部分的前提。 第二部分介绍属于Rust独一无二的内存管理方式。它设计了一组全新的机制,既保证了安全性,又保持了强大的内存布局控制力,而且没有额外性能损失。这部分是本书......一起来看看 《深入浅出Rust》 这本书的介绍吧!