背景说明

由于业务的定制化开发,需要对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-uicnpm installcnpm 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-uicnpm run build:prod

后端打包命令

mvn clean package -Prelease -Dmaven.test.skip=true