Kyligence使用Alluxio加速云上OLAP分析

作者:史少锋 (shaofeng@kyligence.io),Kyligence 高级架构师

编辑:Sammi

自上世纪以来,联机分析处理 (OLAP) 技术已被企业广泛采用;企业运用 OLAP 分析其业务数据,生成报表,从而帮助业务人员制定商务决策。在当今的大数据时代,OLAP 越来越重要,且面临诸多挑战;而云计算使这种情况更加复杂化。本文介绍了大数据智能科技公司 Kyligence 如何在云上利用 Alluxio 提升其OLAP引擎的性能。

背景

Kyligence 公司 [1] 成立于 2016 年,是一家专注于大数据分析领域的科技公司。 Kyligence 的产品基于 Apache Kylin 的开源技术。

Apache Kylin [2] 是一个开源 OLAP 引擎,可为 Hadoop 上的 PB 级数据场景提供交互式分析(Apache Hadoop 是对大型数据集进行分布式存储和处理的开源软件框架)。Apache Kylin 使用 Hadoop 的并行计算技术,将超大数据集构建到 OLAP Cube 中,通过 ANSI-SQL 查询接口提供亚秒级低延迟响应。

图 1. Apache Kylin 架构

Kyligence 的旗舰产品是 Kyligence Analytics Platform (KAP)。该产品基于 Apache Kylin,并提供了多种高级企业级功能。采用 KAP 后,用户可使用行业标准的数据仓库和商务智能 (BI) 运维方法,访问 Hadoop 上的商业智能功能。在此过程中,KAP 可以简化分析,提供自助式服务,与常用 BI 工具无缝交互。所有这一切无需编程即可实现。

图 2. Kyligence Analytics Platform

云端面临的挑战

KAP 利用 Hadoop MapReduce 和 Spark 将源数据构建到 OLAP Cube 中;OLAP Cube 存储在 KyStorage 中。KyStorage 是基于分布式文件系统的并针对OLAP场景进行优化的列式存储引擎。在收到 SQL 查询时,KAP 将查询转换成对 KyStorage 的执行计划,并通过 Spark executor 来执行。

在本地部署的集群中,HDFS 是 Hadoop 和 Spark 最广泛采用的文件系统。由于数据存储在本地磁盘,且操作系统会对文件块做缓存,因此 HDFS 的访问性能很出色;另外,HDFS的文件副本默认为 3,提供了相当高的可靠性。

然而在云端,HDFS 并不是最佳选择。云上的Hadoop集群按需创建,根据工作量指标等动态增加或减小节点数。当节点停止时,虚拟机的本地磁盘将被擦除,这样可能导致数据丢失。在这种情况下,AWS S3 和 Azure Blob Store 等云存储服务,因其近乎无限的容量和大于 99.999% 的 SLA,成为最佳替代品。AWS EMR 和 Azure HDInsight 等 Hadoop 产品为这些存储服务提供原生支持。用户可通过 MapReduce、Spark 或定制应用进行透明访问,就像在常用分布式文件系统上一样。

图 3. 云端 KAP

尽管云存储服务的扩展性和持续性好于 HDFS,但其性能受到所租用的虚拟机网络带宽的限制。此外,S3 等云存储服务不是一个真正意义上的文件系统;其元数据操作如 ‘list’ 会比较耗时,’rename’ 操作实际上是 ‘copy’,对于大数据场景来说难以接受。所有这些都使其整体性能差于 HDFS。

KAP 作为一个低延迟的 OLAP 引擎,其性能在很大程度上依赖于分布式文件系统的性能。在引入 Alluxio 之前,移至云端时,用户不得不忍受性能降级,或者切换至HDFS并在 S3 与 HDFS 之间进行备份和恢复,以在性能与持久性之间获得平衡,这使得部署和维护变得复杂,且容易出错。

KAP 如何利用 Alluxio

为了克服云端的存储限制问题,我们决定在存储服务上为 KyStorage 添加一个缓存层,而Alluxio很好地满足了这个需求。

Alluxio [3] 原名 Tachyon,是世界上第一个以内存为中心的虚拟分布式存储系统。它统一了数据访问方式,为上层计算框架和底层存储系统构建了桥梁。应用程序只需连接 Alluxio 即可访问存储在任意底层存储系统中的数据。此外,Alluxio 以内存为中心的架构使得数据访问速度比现有方案快几个数量级。

在大数据生态系统中,Alluxio 介于计算框架或任务(如 Apache Spark、Apache MapReduce、Apache HBase、Apache Hive 或 Apache Flink)与各种存储系统(如Amazon S3、Google Cloud Storage、OpenStack Swift、GlusterFS、HDFS、MaprFS、Ceph、NFS 和 Alibaba OSS)之间。Alluxio 显著提升了大数据生态系统的性能。Alluxio 与 Hadoop 兼容。现有数据分析应用程序,如 Spark 和 MapReduce 程序,可以不修改任何代码,直接在 Alluxio 上运行。

图 4. Alluxio

此外,Alluxio 提供分层存储,不仅可以管理内存,还可管理 SSD 和 HDD,让更大的数据集存储在 Alluxio 上。数据在不同层之间自动进行管理,确保热数据在更快的存储层上。

借助 Alluxio,KAP不需要进行代码或架构更改。将 Alluxio 安装在 Spark 运行的每个节点上,将 S3 存储桶或 Azure Blob Store 映射为Alluxio的底层文件系统。然后,配置 KAP 通过 Alluxio 来读取S3 或 Blob Store 中的 KyStorage 文件。首次加载时会有点慢,因为 Alluxio 需要将数据读取到内存中。但此后的访问速度会快很多,因为 Alluxio 会智能地从 Spark executor 运行的本地工作机中返回数据块。

下面是引入 Alluxio 后的架构:

图 5. 采用 Alluxio 后的 KAP

由于热数据缓存在 Alluxio 中,从而改进了读取 KyStorage 的性能,极大提升了KAP查询引擎的性能和吞吐量。我们在 AWS 和 Azure 上分别进行了基准测试,所获得的结果验证了这一推断。

AWS S3 测试

测试信息:

Apache JMeter 在 KAP 上运行 SSB 查询,并禁用查询缓存,因此每次需要从文件系统中读取 KyStorage。我们分别在 S3 和 Alluxio上收集查询性能。下面是在 S3 和 Alluxio 上运行 SSB 的统计信息。

图 6. 在 S3上运行SSB

图 7. 在 Alluxio 上运行 SSB

在对比所有查询的平均查询延迟后,我们得到以下结果:

图 8. SSB 查询延迟比较

从上图可以看出,Alluxio 上的平均查询延迟为 0.4 秒,在 S3 上为 1.8 秒。KAP 在 Alluxio 上的性能比在 S3 上的性能快 4 倍之多。

Azure Blob Store 测试

为了深入了解 Alluxio 在 Windows Azure Storage Blob (WASB) 上的性能,我们进行了另一项测试。这次,我们选择真实场景(用户画像分析)并添加了使用HDFS的场景,从 Web 应用程序中收集查询样例。在运行多次后,取其平均值。

测试信息:

样例查询如下:

以下是三个存储系统的平均查询时间。

图 9. WASB vs HDFS vs Alluxio

从上图可以看出,本地 HDFS 在 5 个场景中,有 4 个场景的性能是最佳的。Azure Blob Store 的执行时间在所有场景中是最长的。Alluxio 的性能介于 HDFS 和 Blob Store 之间,但与 HDFS 非常接近。平均而言,与直接读取 Azure Blob Store 相比,Alluxio 可助力 KAP 提升 3 至 4 倍的性能。

总结

Alluxio 可以通过使用其透明的命名和挂载 API,跨不同存储系统有效管理数据。采用 Alluxio 后,KAP 可以在云端,在性能、成本和管理之间实现良好的平衡。

参考文献:

[1]Kyligence

[2]Apache Kylin

[3]Alluxio

[4]SSB-Kylin

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容