DolphinScheduler源码阅读日记(一)开发环境搭建
系统环境
| 环境 | 版本 |
|---|---|
| 系统 | macOS 12.2.1/m1 pro |
| JRE | Zulu 8.62.0.19-CA-macos-aarch64 |
| Maven | 3.8.6 |
| Node | 18.4.0 |
| Pnpm | 7.3.0 |
| Zookeeper | 3.8.4 |
| MySQL | 8.0.28 |
| DolphinScheduler | 3.2.0 |
搭建项目开发环境
项目下载
从github下载源码
从dolphinscheduler源码仓库下载源码
1 | git clone https://github.com/apache/dolphinscheduler |
Zookeeper
下载二进制可执行包
创建文件&日志目录
解压压缩包,创建data、datalog目录
1 | cd /Users/jiashaoqi/plugin/zookeeper |
修改配置文件
将conf目录下的zoo_sample.cfg文件,复制一份,重命名为zoo.cfg,修改其中数据和日志的配置,如:
1 | cd ./apache-zookeeper-3.8.4-bin/conf |

添加环境变量
1 | vi ~/.bash_profile # 添加内容如下 |

启动Zookeeper
1 | zkServer.sh start # 见到如图所示即为启动成功 |

MySQL数据库配置
初始化数据库及账号
创建完新数据库dolphinscheduler后,将dolphinscheduler/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql下的sql文件直接在MySQL中运行,完成数据库初始化
1 | mysql> create database dolphinscheduler; |
后端
Maven依赖下载
通过idea打开项目,下载依赖,这可能需要一段时间
注意:maven下载依赖可能会出现问题,对于下载出错的依赖或者插件,可以到本地maven仓库目录下删除对应的子目录重新下载,如在下载依赖后编译时发生了如下异常
1 | java: 读取/Users/jiashaoqi/plugin/maven/apache-maven-3.8.6/repo/io/fabric8/kubernetes-model-core/5.10.2/kubernetes-model-core-5.10.2.jar时出错; zip file is empty |
所以手动下载依赖kubernetes-model-core
1 | rm -rfv /Users/jiashaoqi/plugin/maven/apache-maven-3.8.6/repo/io/fabric8/kubernetes-model-core/5.10.2 |
修改数据库配置
- 将dolphinscheduler-bom/pom.xml文件中mysql-connector-java依赖的scope修改为compile
- 将如下配置文件中的mysql的datasource配置为如下内容
1
2
3
4
5dolphinscheduler-master/src/main/resources/application.yaml:151
dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/resources/application.yaml:93
dolphinscheduler-api/src/main/resources/application.yaml:229
dolphinscheduler-standalone-server/src/main/resources/application.yaml:305
dolphinscheduler-tools/src/main/resources/application.yaml:49配置名 配置值 datasource.driver-class-name com.mysql.cj.jdbc.Driver datasource.url jdbc:mysql://127.0.0.1:3306/dolphinscheduler datasource.username dolphin datasource.password nihplod
修改日志级别
为以下配置增加一行内容
1 | dolphinscheduler-master/src/main/resources/logback-spring.xml |
1 | <root level="INFO"> |
可以再在STDOUT这个appender的pattern上套一个%clr(...),让日志在控制台上高亮显示,如
1 | <configuration scan="true" scanPeriod="120 seconds"> |
编译源代码

运行后端服务
参考DolphinScheduler 普通开发模式
需要启动三个服务,包括 MasterServer,WorkerServer,ApiApplicationServer
- MasterServer:在 Intellij IDEA 中执行 org.apache.dolphinscheduler.server.master.MasterServer 中的 main 方法,并配置 VM Options -Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
- WorkerServer:在 Intellij IDEA 中执行 org.apache.dolphinscheduler.server.worker.WorkerServer 中的 main 方法,并配置 VM Options -Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
- ApiApplicationServer:在 Intellij IDEA 中执行 org.apache.dolphinscheduler.api.ApiApplicationServer 中的 main 方法,并配置 VM Options -Dlogging.config=classpath:logback-spring.xml -Dspring.profiles.active=api,mysql。启动完成可以浏览 Open API 文档,地址为 http://localhost:12345/dolphinscheduler/swagger-ui/index.html

前端
安装依赖,运行前端服务
1 | cd dolphinscheduler-ui |
截止目前,前后端已成功运行起来,浏览器访问 http://localhost:5173 ,并使用默认账户密码 admin/dolphinscheduler123 即可完成登录
完成环境搭建
搭建成功效果


DolphinScheduler源码阅读日记(一)开发环境搭建
https://jszero.github.io/2024/07/27/Dolphinscheduler源码阅读日记(一)开发环境搭建/
