Before setting up the DolphinScheduler development environment, please make sure you have installed the software as below:
Download the git repository through your git management tool, here we use git-core as an example
mkdir dolphinscheduler
cd dolphinscheduler
git clone git@github.com:apache/dolphinscheduler.git
ii. Run mvn clean install -Prelease -Dmaven.test.skip=true
DolphinScheduler will release new Docker images after it released, you could find them in Docker Hub.
shell
cd dolphinscheduler
./mvnw -B clean package \
-Dmaven.test.skip \
-Dmaven.javadoc.skip \
-Dmaven.checkstyle.skip \
-Ddocker.tag=<TAG> \
-Pdocker,release
When the command is finished you could find them by command docker imaegs
.
If you want to modify DolphinScheduler source code, build and push Docker images to your registry ,you can run when finished the modification
cd dolphinscheduler
./mvnw -B clean deploy \
-Dmaven.test.skip \
-Dmaven.javadoc.skip \
-Dmaven.checkstyle.skip \
-Dmaven.deploy.skip \
-Ddocker.tag=<TAG> \
-Ddocker.hub=<HUB_URL> \
-Pdocker,release
If you want to modify DolphinScheduler source code, and also want to add customize dependencies of Docker image, you can modify the definition of Dockerfile after modifying the source code. You can run the following command to find all Dockerfile files.
cd dolphinscheduler
find . -iname 'Dockerfile'
Then run the Docker build command above
FROM dolphinscheduler-standalone-server
RUN apt update ; \
apt install -y <YOUR-CUSTOM-DEPENDENCE> ; \
Note: Docker will build and push linux/amd64,linux/arm64 multi-architecture images by default
Have to use version after Docker 19.03, because after 19.03 docker contains buildx
There are two ways to configure the DolphinScheduler development environment, standalone mode and normal mode
Note: Use standalone server only for development and debugging, because it uses H2 Database as default database and Zookeeper Testing Server which may not be stable in production.
Standalone is only supported in DolphinScheduler 1.3.9 and later versions.
Standalone server is able to connect to external databases like mysql and postgresql, see Standalone Deployment for instructions.
Use different Git branch to develop different codes
1.3.9-release
.dev
.Find the class org.apache.dolphinscheduler.server.StandaloneServer
in Intellij IDEA and clikc run main function to startup.
Install frontend dependencies and run it.
Note: You can see more detail about the frontend setting in frontend development.
cd dolphinscheduler-ui
pnpm install
pnpm run dev
The browser access address http://localhost:3000 can login DolphinScheduler UI. The default username and password are admin/dolphinscheduler123
Download ZooKeeper, and extract it.
zkData
and zkLog
Go to the zookeeper installation directory, copy configure file zoo_sample.cfg
to conf/zoo.cfg
, and change value of dataDir in conf/zoo.cfg to dataDir=./tmp/zookeeper
# We use path /data/zookeeper/data and /data/zookeeper/datalog here as example
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/datalog
Run ./bin/zkServer.sh
in terminal by command ./bin/zkServer.sh start
.
The DolphinScheduler's metadata is stored in relational database. Currently supported MySQL and Postgresql. We use MySQL as an example. Start the database and create a new database named dolphinscheduler as DolphinScheduler metabase
After creating the new database, run the sql file under dolphinscheduler/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql
directly in MySQL to complete the database initialization
Following steps will guide how to start the DolphinScheduler backend service
Open project: Use IDE open the project, here we use Intellij IDEA as an example, after opening it will take a while for Intellij IDEA to complete the dependent download
File change
dolphinscheduler/pom.xml
and change the scope
of the mysql-connector-java
dependency to compile
. This step is not necessary to use PostgreSQLdolphinscheduler-master/src/main/resources/application.yaml
dolphinscheduler-worker/src/main/resources/application.yaml
dolphinscheduler-api/src/main/resources/application.yaml
We here use MySQL with database, username, password named dolphinscheduler as an example
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
username: dolphinscheduler
password: dolphinscheduler
<appender-ref ref="STDOUT"/>
to the following configuration to enable the log to be displayed on the command linedolphinscheduler-master/src/main/resources/logback-spring.xml
dolphinscheduler-worker/src/main/resources/logback-spring.xml
dolphinscheduler-api/src/main/resources/logback-spring.xml
here we add the result after modify as below:
<root level="INFO">
+ <appender-ref ref="STDOUT"/>
<appender-ref ref="APILOGFILE"/>
<appender-ref ref="SKYWALKING-LOG"/>
</root>
Note: Only DolphinScheduler 2.0 and later versions need to inatall plugin before start server. It not need before version 2.0.
There are three services that need to be started, including MasterServer, WorkerServer, ApiApplicationServer.
main
in the class org.apache.dolphinscheduler.server.master.MasterServer
by Intellij IDEA, with the configuration VM Options -Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
main
in the class org.apache.dolphinscheduler.server.worker.WorkerServer
by Intellij IDEA, with the configuration VM Options -Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
main
in the class org.apache.dolphinscheduler.api.ApiApplicationServer
by Intellij IDEA, with the configuration VM Options -Dlogging.config=classpath:logback-spring.xml -Dspring.profiles.active=api,mysql
. After it started, you could find Open API documentation in http://localhost:12345/dolphinscheduler/doc.htmlThe
mysql
in the VM Options-Dspring.profiles.active=mysql
means specified configuration file
Install frontend dependencies and run it
cd dolphinscheduler-ui
pnpm install
pnpm run dev
The browser access address http://localhost:3000 can login DolphinScheduler UI. The default username and password are admin/dolphinscheduler123