Apache Wayang runs on Windows with a few extra steps compared to Linux or macOS. The main requirement is Hadoop’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apache/wayang/llms.txt
Use this file to discover all available pages before exploring further.
winutils.exe, which the Hadoop libraries (used internally by Spark and HDFS) need to perform file system operations on Windows. This guide walks through every step and covers the most common errors you will encounter.
If you are comfortable with Linux tooling, consider using WSL 2 (Windows Subsystem for Linux) as an alternative. WSL 2 gives you a native Linux environment where Wayang builds and runs without any Hadoop winutils setup. See the WSL note at the bottom of this page.
Setup steps
Install Java 17
Download and install Java 17 from the Eclipse Adoptium project (formerly AdoptOpenJDK):After installation, open a new terminal and verify:You should see output like
openjdk version "17.x.x". If the command is not found, add the JDK bin directory to your PATH or set JAVA_HOME.Install Maven
Download the latest Maven binary archive from:Extract the archive (e.g., to Open a new terminal and verify:
C:\tools\maven) and add its bin directory to your system PATH.Install Hadoop winutils
Wayang’s Spark and HDFS layers require Hadoop native utilities on Windows. Download a pre-built Create the target directory and place the executable there:Copy
winutils.exe that matches Hadoop 3.x:winutils.exe into C:\hadoop\bin.Set environment variables
Open System Properties → Advanced → Environment Variables and add the following:New system variable:
Edit Restart your terminal (or log out and back in) after saving so the new values take effect.
| Variable | Value |
|---|---|
HADOOP_HOME | C:\hadoop |
PATH — add new entry:Verify Hadoop setup
In a new terminal, run:If no error appears, the setup is correct. A successful response lists the contents of
C:\ similarly to Unix ls.Build Wayang
Navigate to the Wayang project root and run the full build (skip tests for speed):For faster iteration when modifying a single module, compile only that module:
Troubleshooting
winutils.exe not found
winutils.exe not found
Error message:Cause:
HADOOP_HOME is not set, or winutils.exe is not in %HADOOP_HOME%\bin.Fix:- Confirm the file exists:
dir C:\hadoop\bin\winutils.exe - Confirm the variable is set:
echo %HADOOP_HOME% - If both are correct but the error persists, restart the terminal — environment variable changes do not apply to existing sessions.
HADOOP_HOME not set or incorrect
HADOOP_HOME not set or incorrect
Error message:Cause:
HADOOP_HOME points to a directory that does not contain a bin\winutils.exe.Fix: Check the value with echo %HADOOP_HOME% and compare it to where you placed winutils.exe. Correct the variable and restart your terminal.Access denied / permission errors
Access denied / permission errors
Error message:Cause: The process does not have permission to create temporary directories (typically under If
C:\Users\<user>\AppData\Local\Temp\hadoop-...).Fix: Run your terminal as Administrator, or grant your user account write permission to the Hadoop temporary directory:C:\tmp\hive does not exist yet, create it first:Maven build fails with 'No compiler is provided'
Maven build fails with 'No compiler is provided'
Cause: Maven cannot find the JDK. This happens when
JAVA_HOME points to a JRE (which lacks javac) instead of the full JDK.Fix: Set JAVA_HOME to the JDK root, not the JRE subdirectory:java.lang.UnsatisfiedLinkError for Spark native libraries
java.lang.UnsatisfiedLinkError for Spark native libraries
Cause: Spark’s native IO libraries require Visual C++ Redistributable packages that may not be present on your system.Fix: Install the latest Microsoft Visual C++ Redistributable:Install both the x64 version. Restart your system after installation.
./mvnw is not recognized
./mvnw is not recognized
Cause: The Maven wrapper script (Or use
mvnw) is a shell script designed for Unix. On Windows use mvnw.cmd instead.mvn directly if Maven is on your PATH.WSL as an alternative
Windows Subsystem for Linux 2 (WSL 2) provides a full Linux kernel and eliminates all Windows-specific Hadoop compatibility issues. If you encounter persistent problems, WSL 2 is the recommended path.- Install WSL 2
- Access Windows files from WSL
