今天介绍在混合云架构中运行Presto Engine的内容。将Presto工作负载从完全内部部署环境迁移到云基础架构具有许多好处,包括减轻资源争用并通过按需购买计算资源来降低成本。如果Presto在HDFS中存储的数据上运行,则由于Presto的体系结构使存储和计算组件能够独立运行,因此云计算和本地存储之间的分离是显而易见的。在云中的Presto混合环境中,从本地环境中检索HDFS数据的关键问题是两个群集之间的网络延迟。
这个关键的瓶颈严重限制了任何工作负载的性能,因为其大部分时间都花在了可能位于地理位置不同的网络之间传输请求的数据上。结果,大多数公司将其数据复制到云环境中并维护该重复数据,也称为Lift and Shift。有合规性和数据主权要求的公司甚至可能阻止组织将数据复制到云中。这种方法不可扩展,需要付出大量的人工才能获得合理的结果。
本文介绍了Alluxio充当数据编排层,以帮助有效地将数据提供给Presto的方法,而不是直接查询遥远的HDFS群集或将数据的本地化副本手动提供给云群集中的Presto。
具有Alluxio和Presto的混合云架构
在以下架构图中,Presto和Alluxio进程都位于云群集中。就Presto而言,它正在查询数据并将其写入Alluxio,就好像它是位于同一位置的HDFS集群一样。当Alluxio收到数据请求时,最初会从远程HDFS群集中获取数据,但后续请求将直接从其缓存中获得。
当Presto发送数据以将其持久存储到存储中时,Alluxio会将数据异步写入HDFS,从而使Presto工作量免于等待远程写入完成的麻烦。在读取和写入两种情况下,除初始读取外,Presto工作负载都能以与HDFS群集相同的网络运行,即使不是更快,性能也一样。请注意,除了部署和配置Alluxio以及在Presto和Alluxio之间建立连接之外,不需要其他配置或其他手动操作即可维护混合环境。
标杆绩效
为了进行基准测试,我们将使用Presto作为计算框架,以对地理上分离的Hive和HDFS群集中的数据运行SQL查询。
本节中用于实验的混合云环境包括位于不同AWS区域的两个Amazon EMR集群。由于两个群集在地理位置上分散,因此群集之间存在明显的网络延迟。VPC对等用于创建VPC连接,以允许两个AWS VPC之间通过全局AWS骨干网之间的流量,而不会出现带宽瓶颈。如果使用AWS作为云提供商,则读者可以按照白皮书中的教程来重现基准测试结果。
我们将行业标准TPC-DS基准中的数据和查询用于决策支持系统,该系统可检查大量数据并回答业务问题。
我们将TPC-DS查询的子集分为以下几类(根据此存储库中的可视化):报告,交互式和深度分析。
使用Alluxio,我们为所有TPC-DS查询收集两个数字;用冷暖表示。
· 感冒是其中运行查询之前的数据没有在Alluxio存储加载的情况下。在这种情况下,Alluxio在查询执行期间按需从HDFS提取数据。
· 在冷运行后,将数据加载到Alluxio存储中的情况是热的。后续访问相同数据的查询不会与HDFS通信。
借助HDFS,我们也可以收集两个数字。本地和远程。
· 本地是指Presto和HDFS位于同一区域的情况。此数字向我们显示了在本地数据而不爆发到云中时在本地运行计算的性能。
· 远程是Presto从另一个区域的存储读取的情况。
我们比较了Alluxio(冷和暖)和HDFS(本地和远程)的性能。基准测试表明,当缓存因远程访问HDFS数据而受热时,Alluxio的性能平均提高了3倍。
在此存储库中可用的104个查询中,q72在远程访问数据时未完成,而在本地数据时花费了5个小时以上。除此之外,白皮书中的结果包括所有其余103个查询。
下表按类别总结了结果。总体与Alluxio看到的最大改进是为Q9(7.1倍),最低是为q39a(1X -没有区别)。
· 查询类别:报告
· 最大改善:q27(3.1x)
· 最低改进:q43(2.7倍)
· 查询类别:互动
· 最大改善:q73(3.9x)
· 最低改进:q98(2.2x)
· 查询类别:深度分析
· 最大改善:q34(4.2x)
· 最低改进:q59(1.9倍)
对于具有10个节点的计算群集,从地理上分离的群集访问数据时,贯穿所有查询运行的峰值带宽利用率保持在2Gbps以下。带宽不是AWS骨干网的瓶颈。随着利用率随着计算群集的大小而扩展,当不使用Alluxio时,较大的群集可能会遇到带宽瓶颈,因为直接连接可用的带宽可能会受到限制。
当无缝缓存到本地的Alluxio群集中时,通过Alluxio可以看到的大多数性能提升都可以通过元数据和数据的延迟差异来解释。
结论
混合云架构允许将云计算资源用于数据分析,即使数据位于完全不同的网络中也是如此。除了获得显着更好的性能外,概述的执行计划不需要对内部部署基础结构进行任何重大重新配置。
由于用户可以利用公共云的计算能力,因此这为Presto提供了更多机会,可将其用作可扩展的高性能计算框架,以使用内部存储的数据进行分析。
好了,关于在混合云架构中运行Presto Engine的内容介绍到这里就结束了,想了解更多关于云计算的信息,请继续关注中培教育吧。