海豚调度(DolphinScheduler)部署------Standalone
- 版本:3.3.2是最新版(本文使用的)。稳定版本是 3.1.9
- DolphinScheduler是2019年中国易观公司开源的一个调度系统。目前是apache顶级项目之一
- 官网:https://dolphinscheduler.apache.org/zh-cn
- 部署及文档(中文):https://dolphinscheduler.apache.org/zh-cn/docs/3.3.2/
- 单机部署及快速使用:https://dolphinscheduler.apache.org/zh-cn/docs/3.3.2/guide/installation/standalone
- 建议用上面的两个官方文档,进行快速部署研究
- 官网截图

环境
-
前置准备工作
JDK:下载JDK (1.8 or 11),安装并配置 JAVA_HOME 环境变量,
并将其下的 bin 目录追加到 PATH 环境变量中。如果你的环境中已存在,可以跳过这步。二进制包:在下载页面下载 DolphinScheduler 二进制包
2、下载、部署
- 下载网页:https://dolphinscheduler.apache.org/zh-cn/download/3.3.2
- 下载地址:https://dlcdn.apache.org/dolphinscheduler/3.3.2/apache-dolphinscheduler-3.3.2-bin.tar.gz
- 清华大学镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/dolphinscheduler/3.3.2/apache-dolphinscheduler-3.3.2-bin.tar.gz

-
解压
tar -zxvf apache-dolphinscheduler-3.3.2-bin.tar.gz
3、准备
3.1、Standalone 切换元数据库
- DolphinScheduler的数据库
- 我们这里以 MySQL 为例来说明如何配置外部数据库:
Standalone server 使用 H2 数据库作为其元数据存储数据,这是为了上手简单,用户在启动服务器之前不需要启动数据库。但是如果用户想将元数据库存储在 MySQL 或 PostgreSQL 等其他数据库中,必须更改一些配置。请参考 数据源配置 Standalone 切换元数据库 创建并初始化数据库
如果使用 MySQL 需要手动下载 mysql-connector-java 驱动 (8.0.16) 解压得到jar包,并移动到 DolphinScheduler 的每个模块的 libs 目录下。
其中包括
api-server/libs
alert-server/libs
master-server/libs
worker-server/libs
tools/libs
standalone-server/libs

- 创建dolphin专用数据库、用户、给用户授权、刷新权限:dolphinscheduler
- 用root账户登陆,执行下面的sql就行
- 专用数据库:dolphinscheduler;专用用户:dolphin(密码:123456)
sql
-- 创建数据库:dolphinscheduler
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
-- 创建用户:dolphin(%:所有ip都可访问)
CREATE USER 'dolphin'@'%' IDENTIFIED BY '123456';
-- 给用户授权数据库:dolphinscheduler
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphin'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
3.2、使用数据源
- 使用MySQL 数据源,需要下载MySQL的jdbc驱动(上面3.1已经下了,不用管了)
如果你想要使用 MySQL 数据源,你需要先在 mysql maven 仓库 中下载对应版本的 JDBC 驱动,将其移入 api-server/libs 以及 worker-server/libs 文件夹中,最后重启 api-server 和 worker-server 服务,即可使用 MySQL 数据源。如果你使用容器启动 DolphinScheduler,同样也是将 JDBC 驱动挂载放到以上两个服务的对应路径下后,重启驱动即可。
注意:如果你只是想要在数据源中心使用 MySQL,则对 MySQL JDBC 驱动的版本没有要求,如果你想要将 MySQL 作为 DolphinScheduler 的元数据库, 则仅支持 8.0.16 及以上的版本。
3.3、给dolphin配置环境变量
-
不是修改全局变量,只需修改dolphin的环境变量
-
文件路径:....../bin/env/dolphinscheduler_env.sh
-
JAVA_HOME查询:
echo $JAVA_HOME
-
在dolphinscheduler_env.sh文件添加
-
注意:${DATABASE}不用修改
export DATABASE=mysql
export SPRING_PROFILES_ACTIVE={DATABASE} export SPRING_DATASOURCE_URL="jdbc:mysql://ip:port/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true" export SPRING_DATASOURCE_USERNAME=dolphin export SPRING_DATASOURCE_PASSWORD=****** export JAVA_HOME=/data/tools/jdk/jdk1.8.0_202 export PATH=JAVA_HOME/bin:$PATH
-
3.4、初始化数据库
-
完成3.3之后才能操作
执行这个命令就行
bash ....../tools/bin/upgrade-schema.sh
-
结果

-
最后查看数据库

3.5、设置配置文件(不是必须,因为springboot启动可以走dolphinscheduler_env.sh环境变量中拿数据源信息)
单机版的配置架构:
3.5.1. 配置文件位置
/data/tools/dolphinscheduler-3.3.2/
├── standalone-server/ # 单机模式独立目录
│ ├── conf/application.yaml # 单机版配置文件(默认H2)
│ ├── bin/start.sh # 单机版启动脚本
│ └── lib/ # 单机版依赖库
├── bin/env/dolphinscheduler_env.sh # 环境变量配置文件
└── ... # 其他目录
3.5.2. 配置优先级与覆盖机制
yaml
# standalone-server/conf/application.yaml 默认内容(部分)
spring:
datasource:
# 默认是H2嵌入式数据库
url: jdbc:h2:file:./dolphinscheduler
driver-class-name: org.h2.Driver
但是,当你在 bin/env/dolphinscheduler_env.sh 中设置了:
bash
export SPRING_DATASOURCE_URL="jdbc:mysql://..."
export SPRING_DATASOURCE_USERNAME="dolphin_user"
export SPRING_DATASOURCE_PASSWORD="Dolphin123!"
Spring Boot 的配置优先级是:
1. 命令行参数 (最高)
2. 环境变量 (SPRING_DATASOURCE_URL等)
3. application.yaml 文件 (较低)
4. 默认配置 (最低)
3.5.3. 配置单机版
- 目录:....../dolphinscheduler-3.3.2/standalone-server/conf/application.yaml
yaml
spring:
profiles:
active: mysql
sql:
init:
schema-locations: classpath:sql/dolphinscheduler_mysql.sql
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://<你的MySQL服务器IP>:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: dolphin
password: 123456
hikari:
connection-test-query: select 1
pool-name: DolphinSchedulerDataSource
3.6、下载插件依赖(重要)
3.6.1、准备,修改maven的settings.xml
-
https://maven.aliyun.com/repository/public
1. 创建~/.m2/settings.xml
cat > ~/.m2/settings.xml << 'EOF'
<settings>
<mirrors>
<mirror>
<id>aliyun</id>
<name>Aliyun Maven Mirror</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
EOF
3.6.2、安装插件
- 从 3.3.0 版本开始,二进制包不再提供插件依赖,需要用户自行下载。
- 手动安装:插件依赖包下载地址:插件依赖包
- 自动安装:你也可以执行以下命令来安装插件依赖:
properties
# 进入安装目录
cd /....../dolphinscheduler-3.3.2
# 给执行文件添加执行权限
chmod +x mvnw
# 进入bin目录
cd /....../dolphinscheduler-3.3.2/bin
# 给执行文件添加执行权限
chmod +x install-plugins.sh
# 下载插件
bash install-plugins.sh 3.3.2

-
通常你并不需要所有的连接器插件,可以通过配置 conf/plugins_config 来指定你所需要的插件,例如,你只需要 dolphinscheduler-task-shell 插件,那么您可以修改配置文件如下:
--task-plugins--
dolphinscheduler-task-shell
--end-- -
注意: 插件依赖包通常不包含在二进制包中,如果你在启动服务时遇到 ClassNotFoundException 错误,请参考相关插件类型的文档检查是否缺少插件依赖包,例如 dolphinscheduler-datasource-mysql 中不包含 mysql-connector-java.jar
4、启动、验证
-
进入目录:/....../dolphinscheduler-3.3.2-bin/bin
进入安装目录
cd /....../dolphinscheduler-3.3.2-bin/bin
启动单机模式
sh dolphinscheduler-daemon.sh start standalone-server
停止
sh dolphinscheduler-daemon.sh stop standalone-server
重启
sh dolphinscheduler-daemon.sh restart standalone-server
查看状态
sh dolphinscheduler-daemon.sh status standalone-server

-
查看日志
cd /....../dolphinscheduler-3.3.2-bin/standalone-server/logs
tail -500f dolphinscheduler-standalone.log
-
访问Web UI
-
浏览器访问地址 http://localhost:12345/dolphinscheduler/ui 即可登录系统 UI。默认的用户名和密码是 admin/dolphinscheduler123
访问:http://<你的服务器IP>:12345/dolphinscheduler/ui
登录账号:admin
登录密码:dolphinscheduler123
-

5、工作流的介绍
5.1、海豚调度工作流存储
-
Active7和海豚调度的流程文件:海豚调度不生成Active7那种XML文件! 它们是完全不同的设计理念。
-
Active7
存储方式:XML文件(BPMN 2.0标准)
设计理念:流程引擎,关注流程控制
文件位置:类路径或文件系统
-
DolphinSchedulr
存储方式:JSON格式存储在MySQL数据库
设计理念:数据调度,关注任务执行和依赖
存储位置:数据库表,不是文件系统
查看流程sql:
SELECT * FROM t_ds_process_definition;
5.2、文件系统存储介绍(资源文件)
# 如果工作流中上传了资源文件(脚本、配置文件等)
# 存储在资源目录(根据配置可能是HDFS或本地)
/data/tools/dolphinscheduler-3.3.2/standalone-server/resources/
- 文件系统存储配置
- todo:后面做
参考
主要参考,官方文档(中文友好):https://dolphinscheduler.apache.org/zh-cn/docs/3.3.2/
https://www.cnblogs.com/DolphinScheduler/p/18912632
https://blog.csdn.net/qq_43819048/article/details/132812990
https://blog.csdn.net/xieyichun_/article/details/142066221