亚马逊 EMR 推出对亚马逊 EC2 C6i、m6i、i4i、R6i 和 R6id 实例的支持,将 Spark 工作负载的成本性能提高 6-33%

作者: Al MS Kevin Ryoo | 202

亚马逊 EMR 提供一项托管服务,可使用 Apache Spark、Hive、Presto、Trino、HBase 和 Flink 等开源框架轻松运行分析应用程序。适用于 Spark Prest o 的 Amazon EMR 运行时 包括优化,与开源 Apache Spark 和 Presto 相比,性能提高了两倍以上,因此您的应用程序可以更快地以更低的成本运行。

在亚马逊 EMR 版本 6.8 中,您现在可以使用使用第三代英特尔至强可扩展处理器的 亚马逊弹性计算云 (亚马逊 EC2)实例,例如 C6i、M6i、i4i、R6i 和 R6iD。与上一代实例相比,将这些新实例与 Amazon EMR 配合使用可额外提高 5-33% 的性价比。

在这篇文章中,我们描述了如何估计在这些新实例上使用 Amazon EMR 与使用同等的上一代实例相比所带来的性价比优势。

使用 EC2 i4i 实例提高了亚马逊 EMR 运行时性能

我们使用适用于 Apache Spark 的亚马逊 EMR 运行时(兼容 Apache Spark 3.3)在亚马逊 EMR 6.8 上运行了 TPC-DS 3 TB 基准查询,其中包含五个 i4i 实例节点集群,数据存储在亚马逊 简单存储 服务 (亚马逊 S3)中,并将其与同等大小的 I3 实例进行了比较。我们使用 TPC-DS 3 TB 基准测试查询的总查询运行时间和查询运行时间的几何平均值来衡量性能改进。

我们的结果显示,与同等的 I3 实例 EMR 群集相比,i4i 实例 EMR 集群的总查询运行时性能提高了 36.41— 44.39%,几何平均值提高了 36-45.2%。为了衡量成本改善,我们将每小时每实例的 Amazon EMR 和 Amazon EC2 成本相加(按需),然后乘以总查询运行时间。请注意,I4i 32XL 实例没有经过基准测试,因为 I3 实例没有 32 XL 的大小可用。我们观察到,与运行 TPC-DS 基准查询的等效 I3 实例 EMR 集群相比,I4i 实例 EMR 集群的实例工时成本降低了 22.56— 33.1%。与 I3 实例集群相比,所有 TPC-DS 查询在 I4i 实例集群上运行得更快。

下表显示了使用亚马逊 EMR 6.8 在同等的 I3 和 I4i 实例 EMR 集群上运行 TPC-DS 3 TB 基准测试查询的结果。

Instance Size 16 XL 8 XL 4 XL 2 XL XL
Number of core instances in EMR cluster 5 5 5 5 5
Total query runtime on I3 (seconds) 4752.15457 4506.43694 7110.03042 11853.40336 21333.05743
Total query runtime on I4I (seconds) 2642.77407 2812.05517 4415.0023 7537.52779 12981.20251
Total query runtime improvement with I4I 44.39% 37.60% 37.90% 36.41% 39.15%
Geometric mean query runtime on I3 (sec) 34.99551 29.14821 41.53093 60.8069 95.46128
Geometric mean query runtime on I4I (sec) 19.17906 18.65311 25.66263 38.13503 56.95073
Geometric mean query runtime improvement with I4I 45.20% 36.01% 38.21% 37.29% 40.34%
EC2 I3 instance price ($ per hour) $4.990 $2.496 $1.248 $0.624 $0.312
EMR I3 instance price ($ per hour) $0.270 $0.270 $0.270 $0.156 $0.078
(EC2 + EMR) I3 instance price ($ per hour) $5.260 $2.766 $1.518 $0.780 $0.390
Cost of running on I3 ($ per instance) $6.943 $3.462 $2.998 $2.568 $2.311
EC2 I4I instance price ($ per hour) $5.491 $2.746 $1.373 $0.686 $0.343
EMR I4I price ($ per hour per instance) $1.373 $0.687 $0.343 $0.172 $0.086
(EC2 + EMR) I4I instance price ($ per hour) $6.864 $3.433 $1.716 $0.858 $0.429
Cost of running on I4I ($ per instance) $5.039 $2.681 $2.105 $1.795 $1.546
Total cost reduction with I4I including performance improvement -27.43% -22.56% -29.79% -30.09% -33.10%

下图显示了我们在亚马逊 EMR 版本 6.8 上的 Spark EMR 运行时的 i4i 2XL 实例上观察到的每次查询的改进,与 TPC-DS 3 TB 基准测试的同等 I3 2XL 实例相比。

使用 EC2 M6i 实例提高了亚马逊 EMR 运行时性能

与同等的 M5 实例相比,M6i 实例在运行 Apache Spark 工作负载时表现出类似的性能改进。我们的测试结果显示,实例系列中七种不同实例大小的总查询运行时间提高了13.45-29.52%,几何平均值提高了7.98-25.37%。在成本比较方面,我们观察到,与运行 TPC-DS 基准查询的 M5 EMR 实例集群相比,M6i 实例 EMR 集群的实例工时成本降低了 7.98— 25.37%。

下表显示了使用亚马逊 EMR 6.8 在等效的 M6i 和 M5 实例 EMR 集群上运行 TPC-DS 3 TB 基准测试查询的结果。

Instance Size 24 XL 16 XL 12 XL 8 XL 4 XL 2 XL XL
Number of core instances in EMR cluster 5 5 5 5 5 5 5
Total query runtime on M5 (seconds) 4027.58043 3782.10766 3348.05362 3516.4308 5621.22532 10075.45109 17278.15146
Total query runtime on M6I (seconds) 3106.43834 2665.70607 2714.69862 3043.5975 4195.02715 8226.88301 14515.50394
Total query runtime improvement with M6I 22.87% 29.52% 18.92% 13.45% 25.37% 18.35% 15.99%
Geometric mean query runtime M5 (sec) 30.45437 28.5207 23.95314 23.55958 32.95975 49.43178 75.95984
Geometric mean query runtime M6I (sec) 23.76853 19.21783 19.16869 19.9574 24.23012 39.09965 60.79494
Geometric mean query runtime improvement with M6I 21.95% 32.62% 19.97% 15.29% 26.49% 20.90% 19.96%
EC2 M5 instance price ($ per hour) $4.61 $3.07 $2.30 $1.54 $0.77 $0.38 $0.19
EMR M5 instance price ($ per hour) $0.27 $0.27 $0.27 $0.27 $0.19 $0.10 $0.05
(EC2 + EMR) M5 instance price ($ per hour) $4.88 $3.34 $2.57 $1.81 $0.96 $0.48 $0.24
Cost of running on M5 ($ per instance) $5.46 $3.51 $2.39 $1.76 $1.50 $1.34 $1.15
EC2 M6I instance price ($ per hour) $4.61 $3.07 $2.30 $1.54 $0.77 $0.38 $0.19
EMR M6I price ($ per hour per instance) $1.15 $0.77 $0.58 $0.38 $0.19 $0.10 $0.05
(EC2 + EMR) M6I instance price ($ per hour) $5.76 $3.84 $2.88 $1.92 $0.96 $0.48 $0.24
Cost of running on M6I ($ per instance) $4.97 $2.84 $2.17 $1.62 $1.12 $1.10 $0.97
Total cost reduction with M6I including performance improvement -8.92% -19.02% -9.28% -7.98% -25.37% -18.35% -15.99%

使用 EC2 R6i 实例提高了亚马逊 EMR 运行时性能

与同等的 R5 实例相比,R6i 实例在运行 Apache Spark 工作负载时表现出类似的性能改进。我们的测试结果显示,实例系列中六种不同实例大小的总查询运行时间提高了14.25-32.23%,几何平均值提高了16.12-36.5%。R5.xLarge 实例没有足够的内存来运行 TPC-DS 基准查询,因此未包含在此比较中。在成本比较方面,我们观察到,与运行 TPC-DS 基准查询的 R5 EMR 实例集群相比,R6i 实例 EMR 集群的实例工时成本降低了 5.48— 23.5%。

下表显示了使用亚马逊 EMR 6.8 在同等的 R6i 和 R5 实例 EMR 集群上运行 TPC-DS 3 TB 基准测试查询的结果。

Instance Size 24 XL 16 XL 12 XL 8 XL 4 XL 2XL
Number of core instances in EMR cluster 5 5 5 5 5 5
Total query runtime on R5 (seconds) 4024.4737 3715.74432 3552.97298 3535.69879 5379.73168 9121.41532
Total query runtime on R6I (seconds) 2865.83169 2518.24192 2513.4849 3031.71973 4544.44854 6977.9508
Total query runtime improvement with R6I 28.79% 32.23% 29.26% 14.25% 15.53% 23.50%
Geometric mean query runtime R5 (sec) 30.59066 28.30849 25.30903 23.85511 32.33391 47.28424
Geometric mean query runtime R6I (sec) 21.87897 17.97587 17.54117 20.00918 26.6277 34.52817
Geometric mean query runtime improvement with R6I 28.48% 36.50% 30.69% 16.12% 17.65% 26.98%
EC2 R5 instance price ($ per hour) $6.0480 $4.0320 $3.0240 $2.0160 $1.0080 $0.5040
EMR R5 instance price ($ per hour) $0.2700 $0.2700 $0.2700 $0.2700 $0.2520 $0.1260
(EC2 + EMR) R5 instance price ($ per hour) $6.3180 $4.3020 $3.2940 $2.2860 $1.2600 $0.6300
Cost of running on R5 ($ per instance) $7.0630 $4.4403 $3.2510 $2.2452 $1.8829 $1.5962
EC2 R6I instance price ($ per hour) $6.0480 $4.0320 $3.0240 $2.0160 $1.0080 $0.5040
EMR R6I price ($ per hour per instance) $1.5120 $1.0080 $0.7560 $0.5040 $0.2520 $0.1260
(EC2 + EMR) R6I instance price ($ per hour) $7.5600 $5.0400 $3.7800 $2.5200 $1.2600 $0.6300
Cost of running on R6I ($ per instance) $6.0182 $3.5255 $2.6392 $2.1222 $1.5906 $1.2211
Total cost reduction with R6I including performance improvement -14.79% -20.60% -18.82% -5.48% -15.53% -23.50%

使用 EC2 C6i 实例提高了亚马逊 EMR 运行时性能

与同等的 C5 实例相比,C6i 实例在运行 Apache Spark 工作负载时表现出类似的性能改进。我们的测试结果显示,实例系列中四个不同实例大小的总查询运行时间提高了12.61-21.09%,几何平均值提高了14.57-20.35%。只有 C6i 24、12、4 和 2xLarge 的尺寸是基准测试的,因为 C5 没有 32、16 和 8 的超大尺寸。C5.xLarge 实例没有足够的内存来运行 TPC-DS 基准查询,因此未包含在此比较中。在成本比较中,我们观察到,与运行 TPC-DS 基准查询的 C5 EMR 实例集群相比,C6i 实例 EMR 集群的实例工时成本降低了 5.93-13.62%。

下表显示了使用亚马逊 EMR 6.8 在同等的 C6i 和 C5 实例 EMR 集群上运行 TPC-DS 3 TB 基准测试查询的结果。

Instance Size * 24 XL 12 XL 4 XL 2 XL
Number of core instances in EMR cluster 5 5 5 5
Total query runtime on C5 (seconds) 3435.59808 2900.84981 5945.12879 10173.00757
Total query runtime on C6I (seconds) 2711.16147 2471.86778 5195.30093 8787.43422
Total query runtime improvement with C6I 21.09% 14.79% 12.61% 13.62%
Geometric mean query runtime C5 (sec) 25.67058 20.06539 31.76582 46.78632
Geometric mean query runtime C6I (sec) 20.4458 17.14133 26.92196 39.32622
Geometric mean query runtime improvement with C6I 20.35% 14.57% 15.25% 15.95%
EC2 C5 instance price ($ per hour) $4.080 $2.040 $0.680 $0.340
EMR C5 instance price ($ per hour) $0.270 $0.270 $0.170 $0.085
(EC2 + EMR) C5 instance price ($ per hour) $4.35000 $2.31000 $0.85000 $0.42500
Cost of running on C5 ($ per instance) $4.15135 $1.86138 $1.40371 $1.20098
EC2 C6I instance price ($ per hour) $4.0800 $2.0400 $0.6800 $0.3400
EMR C6I price ($ per hour per instance) $1.02000 $0.51000 $0.17000 $0.08500
(EC2 + EMR) C6I instance price ($ per hour) $5.10000 $2.55000 $0.85000 $0.42500
Cost of running on C6I ($ per instance) $3.84081 $1.75091 $1.22667 $1.03741
Total cost reduction with C6I including performance improvement -7.48% -5.93% -12.61% -13.62%

使用 EC2 R6id 实例提高了亚马逊 EMR 运行时性能

与同等的 R5D 实例相比,R6id 实例在运行 Apache Spark 工作负载时表现出类似的性能改进。我们的测试结果显示,实例系列中五种不同实例大小的总查询运行时间提高了11.8-28.7%,几何平均值提高了15.1-32.0%。R6ID 32 XL 实例未经过基准测试,因为 R5D 实例没有这些大小可用。在成本比较中,我们观察到,与运行 TPC-DS 基准查询的 R5D EMR 实例集群相比,R6ID 实例 EMR 集群的实例工时成本降低了 6.8— 11.5%。

下表显示了使用亚马逊 EMR 6.8 在等效的 R6id 和 R5d 实例 EMR 集群上运行 TPC-DS 3 TB 基准测试查询的结果。

Instance Size 24 XL 16 XL 12 XL 8 XL 4 XL 2 XL XL
Number of core instances in EMR cluster 5 5 5 5 5 5 5
Total query runtime on R5D (seconds) 4054.4492975042 3691.7569385583 3598.6869168064 3532.7398928104 5397.5330161574 9281.2627059927 16862.8766838096
Total query runtime on R6ID (seconds) 2992.1198446983 2633.7131630720 2632.3186613402 2729.8860537867 4583.1040980373 7921.9960917943 14867.5391541445
Total query runtime improvement with R6ID 26.20% 28.66% 26.85% 22.73% 15.09% 14.65% 11.83%
Geometric mean query runtime R5D (sec) 31.0238156851 28.1432927726 25.7532157307 24.0596427675 32.5800246829 48.2306670294 76.6771994376
Geometric mean query runtime R6ID (sec) 22.8681174894 19.1282742957 18.6161830746 18.0498249257 25.9500918360 39.6580341258 65.0947323858
Geometric mean query runtime improvement with R6ID 26.29% 32.03% 27.71% 24.98% 20.35% 17.77% 15.11%
EC2 R5D instance price ($ per hour) $6.912000 $4.608000 $3.456000 $2.304000 $1.152000 $0.576000 $0.288000
EMR R5D instance price ($ per hour) $0.270000 $0.270000 $0.270000 $0.270000 $0.270000 $0.144000 $0.072000
(EC2 + EMR) R5D instance price ($ per hour) $7.182000 $4.878000 $3.726000 $2.574000 $1.422000 $0.720000 $0.360000
Cost of running on R5D ($ per instance) $8.088626 $5.002331 $3.724641 $2.525909 $2.132026 $1.856253 $1.686288
EC2 R6ID instance price ($ per hour) $7.257600 $4.838400 $3.628800 $2.419200 $1.209600 $0.604800 $0.302400
EMR R6ID price ($ per hour per instance) $1.814400 $1.209600 $0.907200 $0.604800 $0.302400 $0.151200 $0.075600
(EC2 + EMR) R6ID instance price ($ per hour) $9.072000 $6.048000 $4.536000 $3.024000 $1.512000 $0.756000 $0.378000
Cost of running on R6ID ($ per instance) $7.540142 $4.424638 $3.316722 $2.293104 $1.924904 $1.663619 $1.561092
Total cost reduction with R6ID including performance improvement -6.78% -11.55% -10.95% -9.22% -9.71% -10.38% -7.42%

基准测试方法

本文中使用的基准测试源自行业标准 TPC-DS 基准测试,使用来自 Spark SQL 性能测试 GitHub 存储库的查询,并应用了以下修复

我们通过将每小时成本乘以集群中的实例数量和在集群上运行查询所花费的时间来计算 TCO。我们对所有实例都使用了美国东部(弗吉尼亚北部)地区的按需定价。

结论

在这篇文章中,我们描述了如何估算将 Amazon EMR 与 C6i、M6i、i4i、R6i 和 R6id 等实例相比与使用同等的上一代实例相比所带来的性价比优势。将这些新实例与 Amazon EMR 配合使用,可将成本效益再提高 5— 33%。


作者简介

AI MS Al MS 是亚马逊网络服务亚马逊 EMR 的产品经理。

Kyeonghyun Ryoo 是亚马逊网络服务公司的 EMR 软件开发工程师。他主要为内部团队和客户设计和构建自动化工具,以最大限度地提高他们的生产力。工作之余,他是一位退休的职业游戏世界冠军,他仍然喜欢玩电子游戏。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。