OCI 上的 SPARK 工作负载简介
六月 2022 在甲骨文云 Ampere A1实例上的大数据 Spark
Oracle Cloud Infrastructure (OCI)在新的Ampere A1 云原生平台上提供了基于Ampere® Altra®的计算实例。Ampere A1平台可以部署为裸金属服务器或灵活的VM形状,使客户能够完全控制他们的整个云堆栈。Ampere A1 虚拟机形态提供了从1个到80个内核,每核1-64 GB内存的灵活配置,并具多个关键优点,如确定性性能、线性可伸缩性和具有市场上最佳性价比的安全架构。
Apache Spark是一个用于大数据工作负载的开源分布式处理系统。它利用内存缓存,并优化了查询执行,以便对任何大小的数据进行快速分析查询。它提供了Java、Scala和Python中的api。Spark支持实时分析、批处理、交互式查询和机器学习中的多种操作。Spark通过使用RDD(弹性分布式数据集)进行内存处理和跨多个并行操作重用数据来解决Hadoop的局限性。Spark可用于许多存储系统,如HDFS、Couchbase、Cassandra等。
Spark可以在独立集群模式下运行,也可以在Yarn、Kubernetes和Docker等集群管理系统上运行。
Spark架构由Spark驱动程序、执行器和集群管理器组成。驱动程序是Spark执行引擎的控制器,负责维护集群的状态。它与集群管理器交互以获得vCPU和内存等物理资源。驱动程序还启动执行程序。实际任务由驱动程序分配的Spark执行器处理。执行程序运行任务并向驱动程序报告其结果和状态。集群管理器负责维护运行Spark应用程序的节点集群。
与x86同类产品相比,OCI的A1计算机为大数据应用提供了卓越的性价比。基于Ampere Ampere Altra 处理器的A1虚拟机提供可预测性性能和高度的可扩展性,是Spark应用程序的推荐选择。
Oracle云基础设施使用业界领先的Ampere Altra 处理器,每个CPU 80个内核,所有内核都能够持续运行在3.0 Ghz的最高频率。利用Ampere Altra的低功耗设计和OCI的高性能基础设施,Ampere A1虚拟机在云中提供最佳的性价比。
在这个解决方案简介中,OCI Ampere A1 虚拟机的性能与OCI的S3 Standard (Intel iceland), E3 (AMD Rome)和E4 (AMD Milan) flex 虚拟机的性能进行了比较。在Spark上运行的基准测试如下:
1. Spark TeraSort 2. Join operations 3. Word count 4. TPC-DS
一致性和可预测性:Ampere Altra 处理器专为云原生应用而设计,可为 Hadoop 解决方案和激增的工作负载提供一致且可预测的性能。
可扩展性:凭借创新的可横向扩展架构,Ampere Altra 处理器具有更高核心数和极具竞争力的单线程性能。结合所有内核的一致频率特性,OCI Ampere AI 虚拟机的性能优势可达到21%,是大数据工作负载的理想平台。
高能效:行业领先的能效使 Ampere Altra 处理器的性能在达到极具竞争力水平的同时,消耗比竞争对手低得多的电力,即更少的碳足迹。
内存
连接
技术特性
性能
如上所述,虚拟机是在专用网络空间中提供的。测试台上安装了Hadoop 3.3.1 (aarch64 binaries)和Spark 3.1.2。
在测试架构上的每个节点使用了表中列出配置的单个VM。
所有虚拟机都具有相同的CPU内核/线程、内存和存储配置。
所有虚拟机的存储带宽限制为1000 MB/s。8个 cpu的x86虚拟机OCI最大带宽为8gb /s。一个具有16个OCPU的A1实例接收的最大带宽为16gb /s。在我们的基准测试中,A1实例被限制为8gb /s,以保持与x86 VM相同的速度。
在客户(Guest)操作系统上,只有很少的改动,比如禁用了透明的大页面,减少虚拟机切换等。
Spark中的一些配置参数做了调优,以最大限度地利用CPU、内存和存储。
虚拟机和Spark在Yarn上的配置
S3Flex | E3Flex | E4Flex | A1Flex | |
---|---|---|---|---|
OCPU | 8 | 8 | 8 | 16 |
Cores/Threads | 8/16 | 8/16 | 8/16 | 16/16 |
Mem | 96G | 96G | 96G | 96G |
Arch | x86_64 | x86_64 | x86_64 | aarch64 |
Kernel | Oracle Linux 8.5 | |||
Storage | iSCSi 2 x 500G luns, VPU 50, 2 x 480 MBPS | |||
JDK | JDK11 |
Spark 和 Yarn 的配置
dfs.block.size - 512M
yarn.scheduler.minimum-allocation-mb - 1024
yarn.scheduler.maximum-allocation-mb - 65536
yarn.scheduler.minimum-allocation-vcores - 1
yarn.scheduler.maximum-allocation-vcores - 15
yarn.nodemanager.resource.cpu-vcores - 16
yarn.nodemanager.resource.memory-mb - 94208
mapreduce.map.memory.mb - 1024
mapreduce.reduce.memory.mb - 3072
mapred.reduce.parallel.copies - 14
mapreduce.reduce.shuffle.parallelcopies - 12
mapreduce.map.java.opts - 2048M
spark master - yarn
spark executor memory - 12G
spark default parallelism - 30
Spark TeraSort
TeraSort工作负载对Hadoop发行版中包含的TeraGen程序生成的100字节记录进行排序。在每个虚拟机上使用Intel HiBench基准测试工具来生成250GB的数据集。在这些虚拟机上运行Spark TeraSort基准测试,获取以MB/s为单位的TeraSort输出数据。
Join Operations
下面的scala查询在Spark shell中执行了多次,以获取完成连接查询所花费的时间。
val df = sc.makeRDD(1 to 10000000, 6).toDF
val df2 = sc.makeRDD(1 to 10000000, 6).toDF
df.select( $"value" as "a").join(df2.select($"value" as "b"), $"a" === $"b").count
Word Count
Word Count程序代表了现实世界MapReduce作业的一个大子集,一个将数据从一种表示转换为另一种表示,另一个从大数据集中提取少量有趣的数据。上传10GB文本文件到HDFS,然后尝试计算文件中的字数。
TPC-DS
TPC-DS是一个决策支持基准,它对决策支持系统的几个方面进行建模。tpcds-kit克隆自databricks github网站。Spark 3.2以纱线模式运行,比例因子为250,并以拼花格式(parquet)运行。获取执行TPC-DS所花费的时间。
使用Spark Yarn在OCI试验台上获得的相对性能数据如下所示。
Spark TeraSort捕获的单位性能数据的相对价格如下所示。其他基准测试(如TPC-DS、Wordcount和Join操作)的类似图表通过采用16个核心虚拟机的当前按需定价价格而形成。
1. 在优化参数之后,CPU被充分利用,并且在85-90%左右徘徊,在这种高负载条件下的对比是比较公平的。 2. A1 虚拟机的表现比x86的同类产品要好,其性能对比图是将s3flex作为基准参考点绘制的。 3. Ampere A1实例的价格性能比Intel好60%,比AMD好15-18%。
基于 Ampere Altra处理器的Oracle OCI A1实例为Spark等大数据解决方案提供了高性能。在使用OCI Ampere A1实例进行Spark TeraSort工作负载时,Ampere实例的性能优势与价格优势相结合,提供了高达58%的性价比优势,在本报告中测试的其他一些操作中,性价比甚至更高。
更多信息
此处包含的所有数据和信息仅供参考,Ampere 保留更改它的权利,恕不另行通知。本文档可能包含技术错误、遗漏和印刷错误,Ampere 没有义务更新或更正此信息。 Ampere 不作任何形式的陈述或保证,包括但不限于对不侵权、适销性或适用于特定目的的明示或暗示保证,并且不承担任何形式的责任。所有信息均“按原样”提供。本文件不是 Ampere 的要约或具有约束力的承诺。使用此处设想的产品需要随后的谈判和最终协议的执行,或者受 Ampere 的商品销售条款和条件的约束。
与 Ampere 测试中使用的不同的系统配置、组件、软件版本和测试环境可能会导致与 Ampere 获得的测量结果不同。
性价比根据OCI计算价目表计算,适用于16个核心虚拟机(2022年6月)。从16核的价目表中获取每核的价格。所有虚拟机的内存和存储是相同的,因此不考虑。
©2022 Ampere Computing 版权所有。Ampere、Ampere Computing、Altra 和“A”标志都是 Ampere Computing 的注册商标或商标。 Arm 是 Arm Limited(或其子公司)的注册商标。本出版物中使用的所有其他产品名称仅用于识别目的,可能是其各自公司的商标。
Ampere Computing® / 4655 Great America Parkway, Suite 601 / Santa Clara, CA 95054 / amperecomputing.com