Kylin 性能 | 性能全面提升:Kylin4 vs Kylin3 官方性能测试报告

HBase技术社区

共 2790字,需浏览 6分钟

 ·

2021-10-09 08:32

Kylin 社区于 2021 年 08 月 30 日发布 Apache Kylin 4.0.0,这是 Kylin 4.X (Kylin on Parquet) 的第一个正式版本。Apache Kylin 的目标是成为一个高性能低云上 TCO 的开源 OLAP 平台。Kylin 4 升级了架构,使 Kylin 的学习、部署、调优更加简单,也使得在云上的部署、扩容更加简单。如果你对技术架构的细节感兴趣的话,欢迎阅读我们的技术文章:https://kylin.apache.org/blog/2021/07/02/Apache-Kylin4-A-new-storage-and-compute-architecture/ 


为了使得新老用户能够简单直接地了解 Kylin 3 和 Kylin 4 的性能差别,Kylin 发布小组在一个标准的软硬件环境,提供一个易于复现易于观测的性能测试方式,从而为用户提供不同版本之间 Kylin、乃至不同 OLAP 工具之间性能比较的手段。由于我们比较熟悉 AWS 系列产品,所以这里选择 AWS 平台的 EMR 产品作为测试平台。


准备


01

硬件资源一览

7b29f5038bef17e65b021f43a935f5e6.webp

备注:

  • 什么是 vCPU?Each vCPU is a thread of either an Intel Xeon core or an AMD EPYC core, except for M6g instances, A1 instances, T2 instances, and m3.medium.

  • 关于选用的节点(EC2)的详细硬件信息, 请访问 AWS 官网:https://aws.amazon.com/ec2/instance-types

  • Kylin 3 使用磁盘空间较多,所以 Core 节点使用数据盘尺寸为 700GB;与此相对的,Kylin 4 的集群 Core 节点数据盘尺寸为 400GB

  • 创建 EMR 集群的描述文件见附件


02

Hadoop 组件版本一览

416b729c3f539e54f4989a13986b0beb.webp

备注:

关于AWS EMR Hadoop 的更多版本信息,请访问官网 https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-5x.html#emr-5310-components


03

性能度量标准一览

ce3d3e35c3bde5d0f7e12c7ac86a7899.webp


04

测试步骤

  1. 准备测试需要的 JMeter 文件,创建 EMR 集群的脚本

  2. 按照 scale factor = 10 分别创建 TPC-H 和 SSB 的数据文件,保存到 S3

  3. 创建 EMR 集群,根据不同 Kylin 的版本,对应的 Hadoop 组件有所不同,具体参考附件提供的脚本

  4. 下载 TPC-H 和 SSB 的数据文件,Hive 建表

  5. 部署和启动 Kylin 实例

  6. 导入 TPC-H 或者 SSB 的 Kylin 元数据,触发构建任务

  7. 记录 “Cubing Duration” 和 “Storage Size”

  8. 下载 JMeter 文件,在三分钟的预热查询后,依次执行单线程串行查询测试,多线程并发查询测试,每轮测试 15 分钟,测试完成收集保存 JMeter 的报告文件

  9. 释放集群资源,测试结束


测试结果


01

TPC-H 基准结果

9c8d98115543be33d538ca502e2e2cfc.webp


平均查询响应时间对比

9152ff3e1d4634cda8c37c51afd528eb.webp


并发测试对比

对于 Kylin 4,我们做了单线程和四线程查询性能对比测试,结果如下。

fd6ada540501992c01da5f2f7413d5e1.webp


02

SSB 基准结果

d9b4700e27396fb2b43e1783a400a1ef.webp


平均查询响应时间对比

b2e684adeafa8d3aacf4d9650cb5e64d.webp


结论


数据加载时间和 Cube 存储大小

相对 Kylin 3 的 MR 构建引擎,得益于较高的资源利用率,同时减少了转换为 HFile 的步骤,Kylin 4 大大减少构建 Cube 使用的时间,构建时间(Cubing Duration)减少了 62.6%


由于 Kylin 3 存在两份不同格式的 Cube 文件,并且列式存储的 Parquet 使用的空间也较少,Kylin 4 的 Cube 磁盘空间(Storage Size)也大幅降低了 72.56%


查询性能

在复杂查询场景下,Kylin 3 查询优化难度较大,需要对 HBase RS Server、Kylin Query Server 进行反复优化,并且压力测试场景下出现查询节点不稳定,查询响应时间随时间进行不断变差的情况;Kylin 4 由于去除了Query Server 的单点瓶颈,Response Time 和 QPS 都有明显提升,在 TPC-H 查询集上,Kylin 4 有 5-7 倍的提升,其并发也有 4 倍的提升


在点查询场景下,Kylin 4 经过一些基本的调参,性能也能满足亚秒级查询的需求,与 Kylin 3 表现相对比较接近。


学习成本和调参难度

相对 Kylin 3 有众多的构建步骤,同时也依赖多种组件,如 Hive、MapReduce、HBase,需要学习和了解多种技术架构,熟悉多种组件参数配置,学习成本和调参难度较大。


与此对应,Kylin 4 构建和查询都统一切换到流行的 Spark 计算引擎,新用户上手 Kylin 4,学习和调参基本只需要掌握 Spark 即可,这些学习材料可以说很容易找到,并且常用的参数项要远远少于 Kylin 3。


其它

由于时间原因,这里 Kylin 3 的构建过程并没有使用 Spark 和 Flink 来进行测试,我们相信如果使用 Spark 和 Flink 作为构建引擎, Kylin 3 的构建速度会得到一定程度的提升,但是由于存在转换为 HFile 的步骤, Kylin 3 仍会慢于 Kylin 4。


囿于精力和个人水平,这次测试过程并没有做到百分百的发挥不同版本的最好水平,笔者在此特附上性能测试使用的配置文件、脚本、HTML 测试报告,欢迎大家多多尝试和发现更多有趣的结论。谢谢大家。


文档/附件 & 推荐阅读


Apache Kylin 4.0.0 全新发布

有赞出品|升级 Kylin 4 最强攻略

Kylin 4最新功能预览+优化实践抢先看

全网第一份 Kylin 4.0 性能调优指南

Kylin 4 with TPC-H: https://github.com/Kyligence/kylin-tpch/issues/6


36d5102f8e6361786737f41acac94e8a.webp

点击阅读原文,查看测试报告

浏览 80
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报