【原创】DolphinScheduler3.3.0二次开发指南

海豚调度

网上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整体架构是插件式的,因此会有很多模块间依赖的scopeprovided,主要集中在存储和任务插件,开发过程中需要将这几行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模块日志配置文件,将判断条件去除,这样就能直接在命令行看到日志:


修改STDOUT配置

【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

指定Profile

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

Reload All Maven Projects

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

--- THE END ---

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容