Skip to content

Commit 30eef4f

Browse files
authored
Merge pull request #3199 from odidev/spark-velox
Run Apache Spark SQL workloads on Azure Cobalt 100 Arm64 using Gluten and Velox for accelerated analytics
2 parents d5c8382 + 509165e commit 30eef4f

11 files changed

Lines changed: 1049 additions & 0 deletions

File tree

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
title: Run Apache Spark SQL workloads on Azure Cobalt 100 Arm64 using Gluten and Velox for accelerated analytics
3+
4+
draft: true
5+
cascade:
6+
draft: true
7+
8+
minutes_to_complete: 120
9+
10+
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.
11+
12+
learning_objectives:
13+
- Install and configure Hadoop, Spark, and Hive on Azure Cobalt 100 Arm64 virtual machines
14+
- Build and integrate Gluten with the Velox backend for native query execution
15+
- Configure Spark SQL for columnar and vectorized execution
16+
- Generate and load TPC-DS datasets for benchmarking
17+
- Run Spark SQL workloads and compare performance between vanilla Spark and Gluten + Velox
18+
19+
prerequisites:
20+
- A [Microsoft Azure account](https://azure.microsoft.com/) with access to Cobalt 100 based instances (Dpsv6)
21+
- Basic knowledge of Linux command-line operations
22+
- Familiarity with SSH and remote server access
23+
- Basic understanding of distributed systems and Apache Spark
24+
25+
author: Pareena Verma
26+
27+
### Tags
28+
skilllevels: Introductory
29+
subjects: Performance and Architecture
30+
cloud_service_providers:
31+
- Microsoft Azure
32+
33+
armips:
34+
- Neoverse
35+
36+
tools_software_languages:
37+
- Apache Spark
38+
- Hadoop
39+
- Hive
40+
- Gluten
41+
- Velox
42+
43+
44+
operatingsystems:
45+
- Linux
46+
47+
further_reading:
48+
- resource:
49+
title: Apache Spark Documentation
50+
link: https://spark.apache.org/docs/latest/
51+
type: documentation
52+
- resource:
53+
title: Gluten Project (Apache Incubator)
54+
link: https://github.com/apache/incubator-gluten
55+
type: documentation
56+
- resource:
57+
title: Velox Execution Engine
58+
link: https://github.com/facebookincubator/velox
59+
type: documentation
60+
- resource:
61+
title: TPC-DS Benchmark Overview
62+
link: https://www.tpc.org/tpcds/
63+
type: documentation
64+
65+
### FIXED, DO NOT MODIFY
66+
# ================================================================================
67+
weight: 1
68+
layout: "learningpathall"
69+
learning_path_main_page: "yes"
70+
---
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)