Spark on Azure Brief
Jan 2023, Big Data Spark on Azure VMs
Microsoft Azure cloud offers Ampere® Altra® general purpose Dplsv5, Dpldsv5 and memory optimized Epsv5 virtual machines on the new Cloud Native Ampere platform. Azure VMs based on Ampere processors are available with up to 64 Arm cores and 208 GB of memory, and they offer several key benefits such as deterministic performance, linear scalability, and the best price-performance in the market. These new virtual machines have been engineered to efficiently run scale-out and cloud-native workloads.
Apache Spark is an open source, distributed processing system used for big data workloads. It utilizes in-memory caching, and optimized query execution for fast analytic queries against data of any size. It provides APIs in Java, Scala, Python and supports multiple real-time analytic workloads, batch processing, interactive queries, and machine learning. Spark addresses the limitations of Hadoop by performing in-memory processing using RDD (Resilient Distributed Dataset) and reusing data across multiple parallel operations. It relies on other storage systems like HDFS, Couchbase, Cassandra and others.
Spark can run in standalone cluster mode or can run on a Cluster Management system like Yarn, Kubernetes and docker.
Spark’s architecture comprises of a Driver, Cluster Manager, and Executor. The driver is the controller of the Spark execution engine and maintains the state of the cluster. It interfaces with the cluster manager to allocate physical resources like vCPU and memory, and it launches the executors. The executors run the tasks and report back their results and state to the driver. The cluster manager is responsible for maintaining the cluster of nodes that run the Spark application.
Cloud Native: Designed from the ground up for ‘born in the cloud’ workloads, Ampere Altra can deliver much higher price-performance over its x86 peers.
Consistency and Predictability: Ampere Altra processors that are designed for cloud native usage, provide consistent and predictable performance of Spark and in particular for bursting workloads.
Scalable: With an innovative scale-out architecture, Ampere Altra processors have a high core count with compelling single-threaded performance combined with consistent frequency for all cores that make Spark scale up and scale out efficiently.
Power Efficient: Industry-leading energy efficiency allows Ampere Altra processors to hit competitive levels of raw performance while consuming much lower power than the competition.
What it Enables
Memory
Connectivity
Technology & Functionality
Performance
Ampere's Arm technology has higher core density per socket, maximizing the number of cores per rack. Its power-efficient design allows for reduced power consumption while its single threaded architecture provides consistent performance for large data processing tasks.
The Azure Ampere Arm-based virtual machine families include:
All these virtual machine sizes support up to 40 Gbps of networking bandwidth, standard HDDs, standard or premium SSDs and Ultra Disk storage that can be attached to the VMs.
Azure-based Ampere VMs provide superior price-performance for Big Data applications when compared to its x86 peers. These VMs are the perfect choice for Spark applications due to the predictable and highly scalable nature of the architecture.
In this Solution Brief, we contrast three Azure VMs, each featuring comparable CPUs from Intel, AMD and Ampere.
We used Intel HiBench benchmarking tool, and ran Hadoop TeraSort benchmark on the following three Azure VMs:
TeraGen was used to generate a dataset of 250GB, and then the data was sorted using TeraSort capturing throughput in MB/s.
D16s v5 | D16ads v5 | D16ps v5 | |
---|---|---|---|
vCPU | 16 | 16 | 16 |
Cores | 8 | 8 | 16 |
Mem | 64G | 64G | 64G |
Arch | x86_64 | x86_64 | aarch64 |
Kernel | Ubuntu 22.04 | Ubuntu 22.04 | Ubuntu 22.04 |
Storage | 4 x 1024 GB (P40 Performance tier), totaling 1000 MBPS throughput | 4 x 1024 GB (P40 Performance tier), totaling 1000 MBPS throughput | 4 x 1024 GB (P40 Performance tier), totaling 1000 MBPS throughput |
JDK | Oracle JDK 8u345 | Oracle JDK 8u345 | Oracle JDK 8u345 |
Yarn Configuration
dfs.block.size | 256M |
yarn.scheduler.minimum-allocation-mb | 1024 |
yarn.scheduler.maximum-allocation-mb | 59392 |
yarn.scheduler.minimum-allocation-vcores | 1 |
yarn.scheduler.maximum-allocation-vcores | 15 |
yarn.nodemanager.resource.cpu-vcores | 16 |
yarn.nodemanager.resource.memory-mb | 63488 |
mapreduce.map.java.opts | 2048M |
spark.master | yarn |
spark.executor.memory | 12G |
spark.executor.instances | 5 |
spark.default.parallelism | 15 |
spark.sql.shuffle.partitions | 2500 |
The relative performance data captured on the Azure Cloud with Spark on Yarn is shown below.
1. Ampere VMs performed well compared to Intel and AMD. 2. Ampere VMs deliver notably better price performance than Intel and AMD VMs.
(VM pricing calculated with Azure’s public pricing calculator)
Azure virtual machines with Ampere Altra processors excel for big data applications such as Spark. They have near identical raw performance but have an excellent price performance compared to x86 alternatives on Azure cloud. The superior performance of Ampere instances combined with their lower cost makes them a highly valuable option for Spark workloads on Azure.
We look forward to helping our customers discuss their unique needs.
For more information, please visit:
All data and information contained herein is for informational purposes only and Ampere reserves the right to change it without notice. This document may contain technical inaccuracies, omissions and typographical errors, and Ampere is under no obligation to update or correct this information. Ampere makes no representations or warranties of any kind, including but not limited to express or implied guarantees of noninfringement, merchantability, or fitness for a particular purpose, and assumes no liability of any kind. All information is provided “AS IS.” This document is not an offer or a binding commitment by Ampere. Use of the products contemplated herein requires the subsequent negotiation and execution of a definitive agreement or is subject to Ampere’s Terms and Conditions for the Sale of Goods.
System configurations, components, software versions, and testing environments that differ from those used in Ampere’s tests may result in different measurements than those obtained by Ampere.
Price performance was calculated using Microsoft's Virtual Machines Pricing, in September of 2022. Refer to individual tests for more information.
©2023 Ampere Computing. All Rights Reserved. Ampere, Ampere Computing, Altra and the ‘A’ logo are all registered trademarks or trademarks of Ampere Computing. Arm is a registered trademark of Arm Limited (or its subsidiaries). All other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
Ampere Computing® / 4655 Great America Parkway, Suite 601 / Santa Clara, CA 95054 / amperecomputing.com