部署:海豚调度(DolphinScheduler部署)(单机Standalone部署)

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

环境

  • 前置准备工作

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

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

2、下载、部署

  • 解压

    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
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、启动、验证

  • 查看日志

    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