【Dolphinscheduler3.1.1】二次开发本地启动项目(前端+后端)

背景说明

由于业务的定制化开发,需要对Dolphinscheduler进行二次开发,现将项目的启动步骤记录如下。

一、 基础软件安装(必装项请自行安装)

  • Maven: v3.5+,配阿里云仓库地址即可

  • Node: v16.+

  • MySQL (5.7系列) : 两者任选其一即可

  • JDK (1.8+) : 必装

  • ZooKeeper (3.7.1) :必装

ZooKeeper安装步骤如下
  1. 官网下载压缩包并解压到D:\Program Files (x86)\zookeeper-3.4.12

  2. 在D:\Program Files (x86)\zookeeper-3.4.12目录下新建data和log文件夹
    在这里插入图片描述

  3. 复制conf目录下zoo_sample.cfg文件到同目录下,重命名为zoo.cfg(Zookeeper 在启动时会找这个文件作为默认配置文件)
    在这里插入图片描述

修改zoo.cfg中的 dataDir 和 dataLogDir 的配置项为上面新建目录的路径

在这里插入图片描述

  1. 启动测试一下
  • 服务端启动

在这里插入图片描述

  • 启动客户端连接一下,成功

在这里插入图片描述

二、下载源码到本地

源码地址:https://github.com/apache/dolphinscheduler.git

三、切换到指定分支,例如 3.1.1-xxx

四、切换到 dolphinscheduler-ui 目录

修改镜像源,推荐使用淘宝源,可以使用cnpm下载依赖

npm install -g cnpm --registry=https://registry.npmmirror.com/

安装前端依赖并运行前端组件

cd dolphinscheduler-ui
cnpm install
cnpm run dev

Dolphinscheduler-ui 模块中的代码结构如下:
在这里插入图片描述
目录说明如下:
- node_modules是依赖包
- Public是根目录
- Src是文件项
- Assets是放置静态文件,如图片
- Components是放置封装的组件文件
- Layouts是放置整体页面ui布局的文件
- Locales是放置中英双语的配置的文件
- Router是放置Dolphinschedulerui的路由文件
- Service是放置后端接口文件
- Store是放置Pinia状态管理的文件
- Themes是放置项目的深色和浅色状态时的颜色信息文件,分为dark和light
- Utils是放置封装js方法的文件
- Views是放置项目代码文件
- app.tsx是配置整体框架页面
- Main.ts是配置项目公共方法,方便全局使用

五、跳过测试编译

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、执行数据库脚本

– 执行脚本前,创建数据库

CREATE DATABASE dolphinscheduler;
在这里插入图片描述

七、修改ds数据源配置文件

  1. 如果使用 MySQL 作为元数据库,需要先修改 dolphinscheduler/pom.xml,将 mysql-connector-java 依赖的 scope 改为 compile

  2. 修改 Master 数据库配置,修改 dolphinscheduler-master/src/main/resources/application.yaml 文件中的数据库配置

  3. 修改 Worker 数据库配置,修改 dolphinscheduler-worker/src/main/resources/application.yaml 文件中的数据库配置

  4. 修改 Api 数据库配置,修改 dolphinscheduler-api/src/main/resources/application.yaml 文件中的数据库配置

    在这里插入图片描述

八、修改zk配置

修改application.yml中zk的连接地址,如果这里采用windows本地安装zk的方式则不用修改,否则需要修改为对应的zk地址。

在这里插入图片描述

九、修改日志级别

修改日志级别:为以下配置增加一行内容 使日志能在命令行中显示
dolphinscheduler-master/src/main/resources/logback-spring.xml
dolphinscheduler-worker/src/main/resources/logback-spring.xml dolphinscheduler-api/src/main/resources/logback-spring.xml
添加内容如下:

<appender-ref ref="STDOUT"/>

修改后内容如下:

在这里插入图片描述

十、启动服务

需要启动三个服务,包括 MasterServer,WorkerServer,ApiApplicationServer

4.1 MasterServer,同理启动WorkerServer,ApiApplicationServer
执行 org.apache.dolphinscheduler.server.master.MasterServer 中的 main 方法,并配置VM Options

-Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql

注:VM Options -Dspring.profiles.active=mysql 中 mysql 表示指定的配置文件

启动时报如下错误:

Error running 'MasterServer': Command line is too long. Shorten command line for MasterServer or also for Spring Boot default configuration

解决办法:在项目的.idea/workspace.xml文件中,找到,后面在添加一行

<property name="dynamic.classpath" value="true" />

4.2 验证
启动完成可以浏览 Open API 文档,地址为 http://localhost:12345/dolphinscheduler/swagger-ui/index.html

十二、打包命令

前端打包命令

cd dolphinscheduler-ui
cnpm run build:prod

后端打包命令

mvn clean package -Prelease -Dmaven.test.skip=true
### 关于DolphinScheduler API模块启动失败的解决方案 当遇到DolphinScheduler二次开发API模块启动失败并返回`exit code 1`的情况时,通常意味着存在配置错误或依赖项缺失等问题。以下是详细的排查和解决方法: #### 配置文件检查 确保所有必要的配置文件都已正确设置。特别是数据库连接字符串、JDBC驱动路径以及API服务端口等关键参数应无误[^1]。 ```yaml spring.datasource.url=jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=password server.port=12345 ``` #### 日志分析 查看日志文件可以帮助定位具体原因。重点留意启动阶段的日志输出,寻找任何异常堆栈跟踪信息或警告提示。这些线索往往能指引解决问题的方向。 ```bash tail -f /path/to/logs/api.log ``` #### 环境变量验证 确认环境变量已经按照官方文档的要求进行了适当配置。某些情况下,缺少特定环境变量可能导致应用程序无法正常初始化。 ```bash export DS_HOME=/opt/apache-dolphinscheduler export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` #### 版本兼容性审查 考虑到不同版本之间可能存在不兼容之处,建议对比当前使用的DolphinScheduler版本与其他组件(如Hadoop集群)之间的匹配情况。如果适用的话,尝试升级至最新稳定版可能会有所帮助[^3]。 #### 依赖库同步 对于自定义扩展部分,务必保证所引入的新依赖不会冲突原有项目结构。可以借助Maven工具来管理第三方jar包,并通过清理本地仓库缓存的方式排除潜在干扰因素。 ```xml <dependency> <groupId>org.apache.dolphinscheduler</groupId> <artifactId>dolphinscheduler-api</artifactId> <version>${project.version}</version> </dependency> ``` #### 社区支持求助 最后,在经过上述努力仍未能有效处理的情况下,不妨向开源社区寻求帮助。GitHub Issues页面或是官方QQ群都是不错的交流渠道,其他开发者或许曾经遭遇过相似难题并找到妥善办法。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值