
网上DS二开教程均是基于老版本的,当前最新版本是3.3.0-alpha,变动不小,在此记录,以备不时之需。
0x00 准备工作
| 版本 | 备注 | |
|---|---|---|
| 操作系统 | Win11 | 建议16G以上内存 |
| JDK | 8 | - 下载地址 |
| DolphinScheduler | 3.3.0-alpha | - GitHub仓库,- 文档中心 |
| ZooKeeper | 3.8.x | - 下载地址,- 安装手册 |
| IntelliJ IDEA | Community Edition 2025.1 | - 下载地址 |
0x01 代码调整
DS整体架构是插件式的,因此会有很多模块间依赖的scope是provided,主要集中在存储和任务插件,开发过程中需要将这几行XML暂时注释掉(注意不要提交)。此外,单元测试好像只能在macbook上跑通,因此UT也需要跳过。还有一些集成测试或者代码规则校验的maven插件也可以忽略。
【POM文件】
① Root POM
注释或删除以下插件:
- jacoco
- spotbugs
- spotless
- cobertura
② dolphinscheduler-bom模块
- mysql-connector-j 移除
<scope>test</scope> - htrace-core4 移除
<scope>provided</scope>
③ dolphinscheduler-api模块
- dolphinscheduler-task-all 移除
<scope>provided</scope>,增加<version>${project.version}</version> - dolphinscheduler-storage-all 移除
<scope>provided</scope>,增加<version>${project.version}</version>
④ dolphinscheduler-master与dolphinscheduler-worker模块
操作同上
【application.yml】
API、Master、Worker和Alert模块增加或修改mysql配置:
spring:
config:
activate:
on-profile: mysql
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:33306/dolphinscheduler
username: root
password: XxxXxx
【logback-spring.xml】
API、Master、Worker和Alert模块日志配置文件,将判断条件去除,这样就能直接在命令行看到日志:

【common.properties】
API、Master、Worker和Alert模块resources目录下新建common.properties文件,新增一行:
resource.storage.type=LOCAL
0x02 执行编译
后端
在Root POM文件所在目录执行:mvn package -Dmaven.test.skip=true
注意:编译时间比较长,且下载依赖比较多,不建议使用手机流量!
前端
在dolphinscheduler-ui目录下执行如下命令:
pnpm install
0x03 运行代码
Step 0. 初始化数据库
找到并执行dolphinscheduler-dao目录下的mysql相关的SQL脚本。
Step 1. 启动ZooKeeper
Step 2. 启动ApiApplicationServer
启动脚本增加环境变量:SPRING_PROFILES_ACTIVE=mysql

Master、Alert等模块配置方法同上。
Swagger地址:http://localhost:12345/dolphinscheduler/swagger-ui/index.html
Step 3. 启动MasterServer
PS. 放到第一个启动也没问题。
Step 4. 启动WorkerServer
Step 5. 启动AlertServer
Step 6. 启动前端
在dolphinscheduler-ui目录下执行如下命令:
pnpm run dev
默认用户名密码:
admin/dolphinscheduler123
0x04 FAQ
(1)启动过程中日志报错:FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.。
-- 可以忽略。
(2)启动过程中报错:PhysicalTaskExecutorFactory required a bean of type 'org.apache.dolphinscheduler.plugin.storage.api.StorageOperator' that could not be found.
-- 请依次按如下方法操作:
① 重新检查0x01章节所列文件修改是否到位;
② 打开Maven插件,重新加载一遍;

③ 没辙了,重启电脑大法。
--- THE END ---