麦斯科技 · 2022年06月12日

AWS Graviton2上的Spark SQL显示出比x86高达49%的性能优势

https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/spark-sql-on-aws-graviton2-demonstrates-up-to-49-performance-benefits-over-x86-697155095

作者:Masoud Koleini 2022年6月7日

介绍

Spark SQL是Spark最常用的模块之一,它提供了一个简化的编程接口来在集群上运行Spark计算。它附带了查询优化,有助于Spark更高效地运行。由于Spark需要大量资源才能在大数据上运行作业,因此性能和成本效率对用户非常重要。

在之前关于Apache Spark的博客中(https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/apache-spark-performs-better-on-aws-graviton),我们在一个伪分布式Spark集群上运行了几个基准测试(使用HiBench)。其中一个基准是SQL聚合,当在基于AWS Graviton2的实例上运行Spark集群时,它显示了更好的性能。在本博客中,我们使用类似的集群设置并运行TPC-H和TPC-DS SQL基准测试。我们在M6(Graviton2)和M5(x86)类型的实例集群上比较了基准测试的性能。

TPC-H基准

事务处理性能委员会(TPC)是一个为事务处理系统设计和测量基准的联盟。TPC-H(https://www.tpc.org/tpch/default5.asp)是一种专门设计的基准测试,用于为特定和并发数据处理的决策支持工作负载建模。它定义了22个复杂的SQL查询,这些查询模拟真实的业务场景,例如在线事务处理(OLTP)事务。TPC-H指标也称为每小时查询性能指标(QphH@Size),它考虑了单流和多个并发用户查询提交的数据库大小和查询处理能力。我们的Spark基准测试并没有模拟并发用户的场景,我们只测试了TPC-H查询的运行时。

TPC-DS基准

TPC-DS(https://www.tpc.org/tpc_documents_current_versions/pdf/tpc-ds_v3.2.0.pdf)是另一个常见的决策支持基准,专门设计用于建模零售业务等决策支持工作负载。它模拟转换为商业智能决策和数据维护的用户查询。

TPC-DS提供逻辑数据库设计,数据库要求有SQL接口。基准测试定义了99个针对数据库运行的SQL查询,这些查询为复杂的业务问题建模,并使用不同的访问模式。

TPC为TPC-DS和TPC-H基准测试提供了生成数据的工具,这些数据将以不同的比例因子插入到数据库中。每个比例因子表示以GB为单位的数据量。例如,1000的比例因子可以生成大约1000GB的数据。

基准测试环境

基准测试工具

我们使用Spark SQL性能测试针对Spark运行TPC-DS和TPC-H v2.4基准测试。此工具报告两个基准的查询运行时。在本博客中,我们只演示了1000(1000GB数据)的比例因子的结果。

Spark集群

我们使用相同的Spark和Hadoop版本(Spark版本3.1.2和Yarn Hadoop版本3.3.1),针对HiBench实验中类似的伪分布式Yarn Hadoop集群运行基准测试。实例类型和大小为m6gd.16xlarge和m5d.16xlarge,带NVMe SSD分区,用于HDFS存储。

我们使用以下参数在单个实例上运行集群:
.Yarn 执行器内核:5
.执行器个数:12
.执行器内存:16GB

基准测试结果

本节中的图表显示了16xlarge实例的基准测试结果。每个图表上的左轴是以秒为单位的查询运行时。右侧的坐标轴是M6gd相对于M5d实例的性能改进。

TPC-H基准

下表显示了M6gd上的TPC-H基准测试结果。M6gd.16xlarge 对比M5d.16xlarge,按查询的运行时排序。

7635.jpg

图1:m6g和m5d实例上的TCP-H SQL查询运行时比较

TPC-H基准测试表明,M6gd在60%以上的查询中优于M5d,改进率高达43%。不到40%的查询的运行时比M5d查询的运行时高,最大性能低9.4%。

TPC-DS基准

下表显示了M6gd上的TPC-DS基准测试结果。M6gd.16xlarge 对比M5d.16xlarge,按查询的运行时排序。

2703.jpg

图2:m6g和m5d实例上的TCP-DS SQL查询运行时比较

基准测试包含102个查询,包括99个TPC-DS查询和3个查询变体。在102个查询中,M6gd实例运行大约90%的查询速度比M5d实例快,提高了49%。

结论

我们在伪分布式Spark集群上的TPC-H基准测试表明,对于大多数查询,M6gd实例的性能比M5d实例高出43%。运行TPC-DS基准测试也显示了类似的结果,其中对于大多数查询(90%),M6gd实例的性能比M5d实例高出49%。通过在基于Graviton2的实例上运行Spark业务,与x86体系结构实例相比,每小时的价格更低,从而使消费者进一步受益。

访问AWS Graviton页面(https://aws.amazon.com/ec2/graviton/),了解采用基于Arm处理器的客户案例。有关在Arm Neoverse平台上运行的软件工作负载的任何问题,请随时联系我们:ecosystem@arm.com.

推荐阅读
关注数
5845
内容数
525
定期发布Arm相关软件信息,微信公众号 ArmSWDevs,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息