# Deploy Apache Flink on Google Cloud C4A (Arm-based Axion VMs)

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/flink-on-gcp/)
- [Get started with Apache Flink on Google Axion C4A](https://learn.arm.com/learning-paths/servers-and-cloud-computing/flink-on-gcp/background/)
- [Create a Google Axion C4A Arm virtual machine](https://learn.arm.com/learning-paths/servers-and-cloud-computing/flink-on-gcp/instance/)
- [Install Apache Flink](https://learn.arm.com/learning-paths/servers-and-cloud-computing/flink-on-gcp/installation/)
- [Test Flink baseline functionality](https://learn.arm.com/learning-paths/servers-and-cloud-computing/flink-on-gcp/baseline/)
- [Benchmark Flink performance](https://learn.arm.com/learning-paths/servers-and-cloud-computing/flink-on-gcp/benchmarking/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/flink-on-gcp/_next-steps/)

## About this Learning Path

| Skill level:       | Introductory       |
|---------------------|--------------------|
| Reading time:       | 30 min             |
| Last updated:       | 11 Sep 2026        |

| Author:            | Pareena Verma, Arm [GitHub](https://github.com/pareenaverma) [LinkedIn](https://linkedin.com/in/pareena-verma-7853607) |
|---------------------|--------------------------------------------------------------|
| Arm IP:             | [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors) |
| Tags:               | [Performance and Architecture](https://learn.arm.com/tag/performance-and-architecture), [Google Axion](https://learn.arm.com/tag/google-axion), [Linux](https://learn.arm.com/tag/linux), [Flink](https://learn.arm.com/tag/flink), [Java](https://learn.arm.com/tag/java), [Maven](https://learn.arm.com/tag/maven) |

### Who is this for?
This is an introductory topic for developers deploying and optimizing Apache Flink workloads on Linux Arm64 environments, specifically using Google Cloud C4A virtual machines powered by Axion processors.

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Provision an Arm-based SUSE SLES virtual machine on Google Cloud (C4A with Axion processors)
- Install and configure Apache Flink on an Arm64 instance
- Validate Flink functionality by starting the cluster and running a baseline job
- Benchmark Flink performance using JMH-based microbenchmarks

### Prerequisites
Before starting, you will need the following:
- A [Google Cloud Platform (GCP)](https://cloud.google.com/free) account with billing enabled
- Basic familiarity with [Apache Flink](https://flink.apache.org/) and its runtime environment

### Summary
You’ll deploy Apache Flink on a Google Cloud C4A virtual machine powered by an Axion processor. First, you’ll create an Arm64-based instance, install Java, configure Flink, and validate the services with a baseline job. Then, you’ll build and run Flink microbenchmarks with Maven, using the results to confirm the cluster and review performance in the C4A environment.

### Frequently asked questions
<details>
<summary>Which C4A machine type should I use to match the steps?</summary>
Use the `c4a-standard-4` configuration (4 vCPUs, 16 GB memory) to keep your setup consistent with the examples.
</details>

<details>
<summary>What operating system and package manager should I use?</summary>
Use a SUSE Arm64-based virtual machine with `zypper` as the package manager.
</details>

<details>
<summary>Which Java version do I need for Flink on the virtual machine?</summary>
Install Java 17 (OpenJDK) and its development package using `zypper`.
</details>

<details>
<summary>Where should I place the Flink distribution on the virtual machine?</summary>
Download the official Flink distribution to `/opt`.
</details>

<details>
<summary>How do I verify that Flink is ready for benchmarking?</summary>
Run `jps` and confirm that `StandaloneSessionClusterEntrypoint` and `TaskManagerRunner` are running. Open `http://<VM_IP>:8081` to load the Flink Dashboard, then ensure the WordCount example runs successfully before starting the benchmarks.
</details>
