【原創(chuàng)】DolphinScheduler3.3.0二次開(kāi)發(fā)指南

海豚調(diào)度

網(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ì)有很多模塊間依賴的scopeprovided,主要集中在存儲(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模塊日志配置文件,將判斷條件去除,這樣就能直接在命令行看到日志:


修改STDOUT配置

【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

指定Profile

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插件,重新加載一遍;

Reload All Maven Projects

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

--- THE END ---

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容