如何在混合云架构中高效运行 Presto

好久不见. 提交于 2021-01-25 04:50:47

请点击上方蓝字,关注我们哦!

将SQL工作负载从完全的本地环境迁移到云环境中有许多好处,包括降低资源竞争、通过按需购买计算资源来降低费用。当Presto的数据存储在HDFS中时,由于Presto的架构允许存储和计算的组件独立操作,在云环境中的计算与本地的存储之间的分离是显而易见的。在云上通过在Presto检索本地的HDFS数据这样的混合环境里面,一个关键的问题是两个集群之间的网络延迟。

这个关键的瓶颈严重限制了所有工作负载的性能,因为其大部分时间都花在了可能位于地理位置不同的网络之间传输请求的数据上。结果,大多数公司将其数据复制到云环境中并维护该数据副本,也称为Lift and Shift。有合规性和数据主权要求的公司甚至可能阻止组织将数据复制到云中。这种方法不可扩展,需要付出大量的人工才能获得合理的结果。本文介绍了Alluxio充当数据编排层(见参考链接1),以帮助将数据高效地提供给Presto,而不是直接查询远程的HDFS集群或将数据的本地化副本手动提供给云集群中的Presto。



采用Alluxio和Presto的混合云架构



在以下架构图中,Presto和Alluxio进程都位于云集群中。就Presto而言,它正在查询数据并将其写入Alluxio,就好像Alluxio是位于同一位置的HDFS集群一样。当Alluxio收到数据请求时,最初会从远程HDFS集群中获取数据,但后续请求将直接从其缓存中获取。当Presto发送数据以将其持久化到存储中时,Alluxio会将数据异步写入HDFS,从而使Presto工作负载免于等待远程写入完成的麻烦。在读取和写入两种情况下,除了初始读取外,Presto工作负载都能够以与HDFS集群在相同的网络中的性能运行(即使不是更快)。请注意,除了部署和配置Alluxio以及在Presto和Alluxio之间建立连接之外,不需要其他配置或其他手动操作即可维护混合环境。



基准测试性能



为了进行基准测试,我们对地理上分离的Hive和HDFS集群中的数据运行SQL查询。

本节中用于实验的混合云环境包括位于不同AWS区域的两个Amazon EMR集群。因为两个集群在地理位置上分散,所以集群之间存在明显的网络延迟。 VPC对等 (见参考链接2)用于创建VPC连接,以允许通过全局AWS骨干网在两个VPC之间进行通信,而不会出现带宽瓶颈。如果读者使用AWS作为云提供商,那么读者可以按照 白皮书中的教程 (见参考链接3)来重现基准测试结果。
我们将行业标准 TPC-DS (见参考链接4)基准中的数据和查询用于决策支持系统,该系统可检查大量数据并回答业务问题。可以将查询分为以下几类(根据此库中的可视化):报告,交互式分析和深度分析。

使用Alluxio,我们为所有TPC-DS查询收集两种数据,分别表示为Cold和Warm。

  • Cold是指在查询执行前,数据没有加载到Alluxio的情况。在这种情况下,Alluxio在查询执行时,按需从HDFS中拉去数据。
  • Warm是指在Cold类查询执行后数据已经加载到Alluxio中的情况。后续的查询访问相同的数据不需要访问HDFS。

使用HDFS, 我们也收集了两种数据,分别表示为Local和Remote

  • Local是指Presto和HDFS在同一个区域中。这个数据表示的是计算和数据都在本地(而不需要拉到云环境中)的性能。

  • Remote是指Presto从另一个区域的存储端读取数据。
TPC-DS 数据规格

EMR实例规格

我们对比了Presto使用Alluxio(包含Code和Warm)和直接读取HDFS(包含Local和Remote)的性能。基准测试显示,使用Alluxio并且数据缓存在Alluxio中与直接从远程读取HDFS相比,平均性能提升是原来的3倍。

下面的图表分类总结了实验结果。总的来说,使用Alluxio性能提升最大的是q9(7.1倍),提升最小的是q39a(1倍——没有区别)。

在10个节点的计算集群情况下,当从地理上分隔的集群中访问数据时,运行所有查询的峰值网络带宽使用保持在2Gbps以下。使用AWS骨干网络时,网络带宽不是瓶颈。随着计算集群规模的增大,网络带宽使用也会增加。在大型集群中,由于直连网络带宽也存在限制,因此如果不使用Alluxio,网络带宽很可能成为性能瓶颈。

当数据无缝缓存到本地的Alluxio群集中时,使用Alluxio可以看到的大多数性能提升可以通过访问元数据和数据的延迟差异来解释。



结 论



混合云架构允许将云计算资源用于数据分析,即使数据位于完全不同的网络中也是如此。除了显着提高性能外,上述的执行计划不需要对内部部署基础结构进行任何重大的重新配置。由于用户可以利用公共云的计算能力,因此这为Presto提供了更多机会,可将其用作可扩展的高性能计算框架,以使用内部存储的数据进行分析。

深度白皮书《用于数据分析的“零复制”混合云–战略、体系结构和基准报告》(见参考链接5)最初在2020年4月6日由Alluxio在Alluxio Engineering Blog(见参考链接6)上发布。请查看博客以获取有关Alluxio工作的更多文章,并在Slack上加入Alluxio开放源码社区,以解决您可能遇到的任何问题。

更多精彩内容,请点击文末“阅读原文”

·end·

—如果喜欢,快分享给你的朋友们吧—

参考链接:

链接1:

https://www.alluxio.io/data-orchestration/

链接2:

https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html

链接3:

https://www.alluxio.io/resources/whitepapers/zero-copy-hybrid-cloud-for-data-analytics-strategy-architecture-and-benchmark-report/

链接4:

http://www.tpc.org/tpcds/

链接5:

https://www.alluxio.io/resources/whitepapers/zero-copy-hybrid-cloud-for-data-analytics-strategy-architecture-and-benchmark-report/

链接6:

https://www.alluxio.io/blog/

本文分享自微信公众号 - 海豚调度(dolphin-scheduler)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!