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

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

环境

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

2、下载、部署

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

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

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

  • 创建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 
  • 结果
    部署:海豚调度(DolphinScheduler部署)(单机Standalone部署)
  • 最后查看数据库
    部署:海豚调度(DolphinScheduler部署)(单机Standalone部署)

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 

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

  • 通常你并不需要所有的连接器插件,可以通过配置 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 

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

  • 查看日志
cd /……/dolphinscheduler-3.3.2-bin/standalone-server/logs  tail -500f dolphinscheduler-standalone.log 
访问:http://<你的服务器IP>:12345/dolphinscheduler/ui  登录账号:admin  登录密码:dolphinscheduler123 

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

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

发表评论

评论已关闭。

相关文章