
網(wǎng)上DS二開(kāi)教程均是基于老版本的,當(dāng)前最新版本是3.3.0-alpha,變動(dòng)不小,在此記錄,以備不時(shí)之需。
0x00 準(zhǔn)備工作
| 版本 | 備注 | |
|---|---|---|
| 操作系統(tǒng) | Win11 | 建議16G以上內(nèi)存 |
| JDK | 8 | - 下載地址 |
| DolphinScheduler | 3.3.0-alpha | - GitHub倉(cāng)庫(kù),- 文檔中心 |
| ZooKeeper | 3.8.x | - 下載地址,- 安裝手冊(cè) |
| IntelliJ IDEA | Community Edition 2025.1 | - 下載地址 |
0x01 代碼調(diào)整
DS整體架構(gòu)是插件式的,因此會(huì)有很多模塊間依賴的scope是provided,主要集中在存儲(chǔ)和任務(wù)插件,開(kāi)發(fā)過(guò)程中需要將這幾行XML暫時(shí)注釋掉(注意不要提交)。此外,單元測(cè)試好像只能在macbook上跑通,因此UT也需要跳過(guò)。還有一些集成測(cè)試或者代碼規(guī)則校驗(yàn)的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 執(zhí)行編譯
后端
在Root POM文件所在目錄執(zhí)行:mvn package -Dmaven.test.skip=true
注意:編譯時(shí)間比較長(zhǎng),且下載依賴比較多,不建議使用手機(jī)流量!
前端
在dolphinscheduler-ui目錄下執(zhí)行如下命令:
pnpm install
0x03 運(yùn)行代碼
Step 0. 初始化數(shù)據(jù)庫(kù)
找到并執(zhí)行dolphinscheduler-dao目錄下的mysql相關(guān)的SQL腳本。
Step 1. 啟動(dòng)ZooKeeper
Step 2. 啟動(dòng)ApiApplicationServer
啟動(dòng)腳本增加環(huán)境變量:SPRING_PROFILES_ACTIVE=mysql

Master、Alert等模塊配置方法同上。
Swagger地址:http://localhost:12345/dolphinscheduler/swagger-ui/index.html
Step 3. 啟動(dòng)MasterServer
PS. 放到第一個(gè)啟動(dòng)也沒(méi)問(wèn)題。
Step 4. 啟動(dòng)WorkerServer
Step 5. 啟動(dòng)AlertServer
Step 6. 啟動(dòng)前端
在dolphinscheduler-ui目錄下執(zhí)行如下命令:
pnpm run dev
默認(rèn)用戶名密碼:
admin/dolphinscheduler123
0x04 FAQ
(1)啟動(dòng)過(guò)程中日志報(bào)錯(cuò):FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.。
-- 可以忽略。
(2)啟動(dòng)過(guò)程中報(bào)錯(cuò):PhysicalTaskExecutorFactory required a bean of type 'org.apache.dolphinscheduler.plugin.storage.api.StorageOperator' that could not be found.
-- 請(qǐng)依次按如下方法操作:
① 重新檢查0x01章節(jié)所列文件修改是否到位;
② 打開(kāi)Maven插件,重新加載一遍;

③ 沒(méi)轍了,重啟電腦大法。
--- THE END ---