部署:海豚调度(DolphinScheduler部署)(单机Standalone部署)-3.3.2(非稳定版)

海豚调度(DolphinScheduler)部署——Standalone

环境

  • 前置准备工作
JDK:下载JDK (1.8 or 11),安装并配置 JAVA_HOME 环境变量,
并将其下的 bin 目录追加到 PATH 环境变量中。如果你的环境中已存在,可以跳过这步。

二进制包:在下载页面下载 DolphinScheduler 二进制包

2、下载、部署

image

  • 解压
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

image

  • 创建dolphin专用数据库、用户、给用户授权、刷新权限:dolphinscheduler
  • 用root账户登陆,执行下面的sql就行
  • 专用数据库:dolphinscheduler;专用用户:dolphin(密码:123456)
-- 创建数据库: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
  • (非必须)如果你用的是4G、或者2G的云服务器,你都启动不了,必须配置内存大小,还是在环境变量文件dolphinscheduler_env.sh增加:
# 减少堆内存(单机模式通用)
export MASTER_JAVA_OPTS="-Xms512m -Xmx1g -XX:+UseG1GC"
export WORKER_JAVA_OPTS="-Xms512m -Xmx1g -XX:+UseG1GC"
export API_JAVA_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC"
export ALERT_JAVA_OPTS="-Xms128m -Xmx256m -XX:+UseG1GC"
# 单机模式统一设置
export STANDALONE_JAVA_OPTS="-Xms1g -Xmx2g -XX:+UseG1GC -XX:MaxMetaspaceSize=256m"
# 通用JVM优化
export JAVA_OPTS="-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dolphinscheduler-heapdump.hprof"

3.4、初始化数据库

  • 完成3.3之后才能操作
# 执行这个命令就行
bash ……/tools/bin/upgrade-schema.sh
  • 结果
    image
  • 最后查看数据库
    image

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. 配置优先级与覆盖机制
# standalone-server/conf/application.yaml 默认内容(部分)
spring:
  datasource:
    # 默认是H2嵌入式数据库
    url: jdbc:h2:file:./dolphinscheduler
    driver-class-name: org.h2.Driver

但是,当你在 bin/env/dolphinscheduler_env.sh 中设置了:

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
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
# 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 版本开始,二进制包不再提供插件依赖,需要用户自行下载。
    • 手动安装:插件依赖包下载地址:插件依赖包
    • 自动安装:你也可以执行以下命令来安装插件依赖:
# 进入安装目录
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

image

  • 通常你并不需要所有的连接器插件,可以通过配置 conf/plugins_config 来指定你所需要的插件,例如,你只需要 dolphinscheduler-task-shell 插件,那么您可以修改配置文件如下:
--task-plugins--
dolphinscheduler-task-shell
--end--
  • 注意: 插件依赖包通常不包含在二进制包中,如果你在启动服务时遇到 ClassNotFoundException 错误,请参考相关插件类型的文档检查是否缺少插件依赖包,例如 dolphinscheduler-datasource-mysql 中不包含 mysql-connector-java.jar

4、启动、验证、API接口(swagger)

  • 进入目录:/……/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

image

  • 查看日志
cd /……/dolphinscheduler-3.3.2-bin/standalone-server/logs

tail -500f dolphinscheduler-standalone.log
访问:http://<你的服务器IP>:12345/dolphinscheduler/ui

登录账号:admin

登录密码:dolphinscheduler123

image

4.2、swagger接口文档

image

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://chuna2.787528.xyz/DolphinScheduler/p/18912632
https://blog.csdn.net/qq_43819048/article/details/132812990
https://blog.csdn.net/xieyichun_/article/details/142066221

posted on 2025-12-03 15:07  C_C_菜园  阅读(495)  评论(2)    收藏  举报

导航