Skip to content

Commit 3d95f1d

Browse files
committed
Run Apache Spark SQL workloads on Azure Cobalt 100 Arm64 using Gluten and Velox for accelerated analytics
Signed-off-by: odidev <odidev@puresoftware.com>
1 parent 4f63fd9 commit 3d95f1d

11 files changed

Lines changed: 1045 additions & 0 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
title: Run Apache Spark SQL workloads on Azure Cobalt 100 Arm64 using Gluten and Velox for accelerated analytics
3+
4+
minutes_to_complete: 120
5+
6+
who_is_this_for: This is an intermediate topic for data engineers, platform engineers, and developers who want to build and optimize high-performance Spark SQL workloads using native execution engines on Arm-based cloud environments.
7+
8+
learning_objectives:
9+
- Install and configure Hadoop, Spark, and Hive on Azure Cobalt 100 Arm64 virtual machines
10+
- Build and integrate Gluten with the Velox backend for native query execution
11+
- Configure Spark SQL for columnar and vectorized execution
12+
- Generate and load TPC-DS datasets for benchmarking
13+
- Run Spark SQL workloads and compare performance between vanilla Spark and Gluten + Velox
14+
15+
prerequisites:
16+
- A [Microsoft Azure account](https://azure.microsoft.com/) with access to Cobalt 100 based instances (Dpsv6)
17+
- Basic knowledge of Linux command-line operations
18+
- Familiarity with SSH and remote server access
19+
- Basic understanding of distributed systems and Apache Spark
20+
21+
author: Pareena Verma
22+
23+
### Tags
24+
skilllevels: Introductory
25+
subjects: Performance and Architecture
26+
cloud_service_providers:
27+
- Microsoft Azure
28+
29+
armips:
30+
- Neoverse
31+
32+
tools_software_languages:
33+
- Apache Spark
34+
- Hadoop
35+
- Hive
36+
- Gluten
37+
- Velox
38+
39+
40+
operatingsystems:
41+
- Linux
42+
43+
further_reading:
44+
- resource:
45+
title: Apache Spark Documentation
46+
link: https://spark.apache.org/docs/latest/
47+
type: documentation
48+
- resource:
49+
title: Gluten Project (Apache Incubator)
50+
link: https://github.com/apache/incubator-gluten
51+
type: documentation
52+
- resource:
53+
title: Velox Execution Engine
54+
link: https://github.com/facebookincubator/velox
55+
type: documentation
56+
- resource:
57+
title: TPC-DS Benchmark Overview
58+
link: https://www.tpc.org/tpcds/
59+
type: documentation
60+
61+
### FIXED, DO NOT MODIFY
62+
# ================================================================================
63+
weight: 1
64+
layout: "learningpathall"
65+
learning_path_main_page: "yes"
66+
---
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
# ================================================================================
3+
# FIXED, DO NOT MODIFY THIS FILE
4+
# ================================================================================
5+
weight: 21 # Set to always be larger than the content in this path to be at the end of the navigation.
6+
title: "Next Steps" # Always the same, html page title.
7+
layout: "learningpathall" # All files under learning paths have this same wrapper for Hugo processing.
8+
---
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
title: "Overview of Azure Cobalt 100 and Apache Spark with Gluten and Velox"
3+
4+
weight: 2
5+
6+
layout: "learningpathall"
7+
---
8+
9+
## Azure Cobalt 100 Arm-based processor
10+
11+
Azure’s Cobalt 100 is Microsoft’s first-generation, in-house Arm-based processor. Built on Arm Neoverse N2, Cobalt 100 is a 64-bit CPU that delivers strong performance and energy efficiency for cloud-native, scale-out Linux workloads such as web and application servers, data analytics, open-source databases, and caching systems. Running at 3.4 GHz, Cobalt 100 allocates a dedicated physical core for each vCPU, which helps ensure consistent and predictable performance.
12+
13+
To learn more, see the Microsoft blog [Announcing the preview of new Azure VMs based on the Azure Cobalt 100 processor](https://techcommunity.microsoft.com/blog/azurecompute/announcing-the-preview-of-new-azure-vms-based-on-the-azure-cobalt-100-processor/4146353).
14+
15+
## Apache Spark with Gluten and Velox
16+
17+
Apache Spark is an open-source distributed data processing engine designed for large-scale data analytics. It provides high-level APIs for SQL, streaming, machine learning, and graph processing, and is widely used for building data pipelines and analytical workloads.
18+
19+
By default, Spark executes queries using the JVM (Java Virtual Machine), which can introduce overhead in CPU-intensive workloads. To address this, modern acceleration frameworks like **Gluten** and **Velox** enable native execution for improved performance.
20+
21+
**Gluten** is an open-source Spark plugin that offloads Spark SQL execution from the JVM to native engines. It acts as a bridge between Spark and high-performance backends, enabling efficient query execution while maintaining compatibility with existing Spark workloads.
22+
23+
**Velox** is a high-performance, vectorized execution engine written in C++. It is optimized for modern hardware, including Arm64 architectures such as Azure Cobalt 100. Velox processes data in a columnar format and uses vectorized execution to significantly reduce CPU overhead and improve query performance.
24+
25+
Together, **Gluten + Velox** provide:
26+
27+
- Native (off-JVM) execution of Spark SQL queries
28+
- Vectorized processing for faster computation
29+
- Reduced memory and CPU overhead
30+
- Improved performance on Arm-based infrastructure
31+
32+
To learn more, see:
33+
- [Apache Spark Documentation](https://spark.apache.org/docs/latest/)
34+
- [Gluten Project](https://github.com/apache/incubator-gluten)
35+
- [Velox Engine](https://github.com/facebookincubator/velox)
36+
37+
38+
### Key Capabilities
39+
40+
- **Native Query Execution:**
41+
Spark SQL queries are executed using Velox instead of JVM-based execution.
42+
43+
- **Columnar Processing:**
44+
Data is processed in columnar batches, improving cache efficiency and throughput.
45+
46+
- **Vectorized Execution:**
47+
Multiple data values are processed in a single CPU instruction, accelerating computation.
48+
49+
- **Hardware Optimization:**
50+
Velox is optimized for modern CPUs, including Arm64 (Azure Cobalt 100), delivering better performance per core.
51+
52+
### In This Learning Path
53+
54+
In this Learning Path, you will:
55+
56+
- Deploy Apache Spark on an Azure Cobalt 100 Arm64 virtual machine
57+
- Build and integrate Gluten with the Velox backend
58+
- Configure Spark to use native execution
59+
- Run Spark SQL workloads using Gluten + Velox
60+
- Generate and load TPC-DS benchmark datasets
61+
- Execute analytical queries and measure performance
62+
- Compare accelerated workloads against vanilla Spark
63+

0 commit comments

Comments
 (0)