DolphinScheduler 3.1.9 Dev Setup Guide for Custom Development



This content originally appeared on DEV Community and was authored by Chen Debra

In production, Apache DolphinScheduler 3.1.9 is widely chosen by enterprises for its stability and mature features. As usage deepens, many want to extend and customize it further. Before diving into secondary development, a complete local development environment setup is essential. This guide uses real-world scenarios to detail the configuration process for DolphinScheduler 3.1.9, aiming to be a practical and reliable reference for users with customization needs.

Prerequisites

Before setting up the DolphinScheduler dev environment, please ensure you have installed:

  • Git
  • JDK v1.8.x (Note: DolphinScheduler 3.1.9 requires JDK 1.8.x, no higher)
  • Maven v3.5+
  • Node v16.13+ (For DolphinScheduler versions earlier than 3.0, install Node v12.20+)
  • Pnpm v6.x (Note: DolphinScheduler 3.1.9 requires Pnpm 6.x, no higher)

Open pom.xml

Open the pom.xml file using IntelliJ IDEA as a project.
In the .idea directory, locate workspace.xml, and under PropertiesComponent, add the line:

"dynamic.classpath": "true"

IDEA setting screenshot

Download & Extract ZooKeeper

In the ZooKeeper folder, create a data directory.
Copy zoo_sample.cfg from conf/ and rename it to zoo.cfg. Change the dataDir path to point to the newly created data directory.

ZooKeeper config screenshot

Start ZooKeeper by running:

./bin/zkServer.cmd

Modify DB Dependency Configuration

Open the pom.xml in the dolphinscheduler-bom module.
If you’re using PostgreSQL, no changes are needed. For MySQL, change the dependency scope from test to compile, then refresh Maven in IntelliJ.

Maven dependency screenshot

Create & Initialize the Database

Install MySQL 8.0.16+ (recommended).
After creating the database, initialize it using the SQL script files as shown in the screenshot.

SQL init screenshot

Configure MySQL Settings

In the following modules’ application.yaml and logback-spring.xml, change the database settings from PostgreSQL to MySQL and adjust log levels:

  • dolphinscheduler-alert
  • dolphinscheduler-api
  • dolphinscheduler-master
  • dolphinscheduler-worker

For example, in dolphinscheduler-master:

MySQL config screenshot

Also update logging in logback-spring.xml:

Logback config screenshot

Adjust Frontend Module Settings

Open dolphinscheduler-ui/package.json and remove all ^ from version numbers to avoid conflicts:

Package.json screenshot

Start Backend & Frontend Services

You need to start these three backend services:

  • MasterServer: Run org.apache.dolphinscheduler.server.master.MasterServer::main in IntelliJ with VM options:
-Dlogging.config=classpath:logback-spring.xml 
-Ddruid.mysql.usePingMethod=false 
-Dspring.profiles.active=mysql
  • WorkerServer: Run org.apache.dolphinscheduler.server.worker.WorkerServer::main with VM options:
-Dlogging.config=classpath:logback-spring.xml 
-Ddruid.mysql.usePingMethod=false 
-Dspring.profiles.active=mysql
  • ApiApplicationServer: Run org.apache.dolphinscheduler.api.ApiApplicationServer::main with VM options:
-Dlogging.config=classpath:logback-spring.xml 
-Dspring.profiles.active=api,mysql

Open your run configurations, add the VM options, and hit Run.

Start Frontend

In the dolphinscheduler-ui directory, run:

pnpm install
pnpm dev

Once started, the terminal will display the port. Open your browser to access the web UI.

Frontend running screenshot
Browser UI screenshot
Dashboard screenshot

🎉 Once done, your DolphinScheduler 3.1.9 environment is fully up and ready for customization and development!


This content originally appeared on DEV Community and was authored by Chen Debra