1、环境安装

  • zookeeper
  • mysql
  • jdk 1.8

2、下载项目代码

gitee: https://gitee.com/dolphinscheduler/DolphinScheduler.git
github: https://github.com/apache/dolphinscheduler.git
git clone https://gitee.com/dolphinscheduler/DolphinScheduler.git

3、IDEA加载项目

初始化数据库

初始化脚步路径: ./dolphinscheduler/dolphinscheduler-dao/src/main/resources/sql
在这里插入图片描述

更改Mysql链接信息

dolphinscheduler-api、dolphinscheduler-master、dolphinscheduler-worker
在这里插入图片描述

更改pom

dolphinscheduler-bom
在这里插入图片描述

更改logback-spring.xml (可选)

dolphinscheduler-api、dolphinscheduler-master、dolphinscheduler-worker
开启运行日志

<root level="INFO">
	<!-- 原配置
    <if condition="${DOCKER:-false}">
        <then>
            <appender-ref ref="STDOUT"/>
        </then>
    </if>
    -->
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="TASKLOGFILE"/>
    <appender-ref ref="MASTERLOGFILE"/>
</root>

4、启动 Master、Worker、Api

  • master VM Options:-Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
  • worker VM Options: -Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
  • Api VM Options: -Dlogging.config=classpath:logback-spring.xml -Dspring.profiles.active=api,mysql
    在这里插入图片描述

5、启动UI

dolphinscheduler-ui

npm install
npm run dev

访问地址: http://localhost:12345/dolphinscheduler/ui
默认账号密码 admin / dolphinscheduler123

6、打包前后端

在项目根目录下执行命令, 打包时间长, 请耐心等待...

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

7、部署

部署文件

文件夹 dolphinscheduler-dist/targetbin.tar.gz 后缀文件
在这里插入图片描述

部署过程

DolphinScheduler | 文档中心 (apache.org)
参考官方部署方式, 以伪集群部署为例: https://dolphinscheduler.apache.org/zh-cn/docs/3.2.1/guide/installation/pseudo-cluster

启动项目

# 配置环境变量: DOLPHINSCHEDULER_HOME, DolphinScheduler项目路径, 也就是部署文件解压后的文件路径 (非常重要, 一定要配置对, 否则启动不起来)
vim ~/.bashrc
# 增加下面配置, /home/**/dolphinscheduler 根据实际情况替换为自己服务器的文件路径
export DOLPHINSCHEDULER_HOME=/home/**/dolphinscheduler

# 每个模块执行命令格式 dolphinscheduler-daemon.sh (start|stop|status) <api-server|master-server|worker-server|alert-server|standalone-server>
# 1、单机模式: 
# 启动
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh start standalone-server
# 查看状态
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh status standalone-server
# 关闭
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh stop standalone-server

# 2、集群模式
# 启动方式一:
# 每个模块单独启动
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh start master-server
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh start worker-server
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh start api-server
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh start alert-server
# 查看状态
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh status master-server
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh status worker-server
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh status api-server
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh status alert-server
# 每个模块单独关闭
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh stop master-server
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh stop worker-server
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh stop api-server
$DOLPHINSCHEDULER_HOME/bin/dolphinscheduler-daemon.sh stop alert-server

# 启动方式二:
# 启动所有模块
$DOLPHINSCHEDULER_HOME/bin/start-all.sh
# 查看所有模块状态
$DOLPHINSCHEDULER_HOME/bin/status-all.sh
# 关闭所有模块
$DOLPHINSCHEDULER_HOME/bin/stop-all.sh

# 在启动和查看状态中需要输入服务器的密码, 可配置免密登录, 就可以不用输入密码, 免密登录配置方式如下:
# 1. 使⽤rsa加密技术,⽣成公钥和私钥。⼀路回⻋即可
ssh-keygen -t rsa 
# 2. 使⽤ssh-copy-id命令, 按照提示输入SSH密码
ssh-copy-id [用户名]@[服务器IP]
# 3. 进⾏验证 
ssh [用户名]@[服务器IP]

8、坑点

提示MySQL链接不上

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
...
Caused by: javax.net.ssl.SSLException: Received fatal alert: internal_error
...

解决方式
数据库链接后增加 useSSL=false

jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false

build时提示 java: 程序包sun.security.krb5不存在

解决方式
更改SDK为1.8
更改Language level为 8 - Lambdas
在这里插入图片描述

无法正常启动, 报错 Master/Worker node is BUSY 3.2.1版本后出现

报这个错的原因是Master/Worker启动时会做负载保护检查, 包括CPU、JVM内存、系统内存、磁盘内存如果有一项到阈值0.7, 就会触发保护无法启动

[WI-0][TI-0] - [WARN] 2024-05-27 14:55:57.721 +0800 o.a.d.s.m.r.MasterRegistryClient:[163] - Master node is BUSY: MasterHeartBeat(startupTime=1716792917253, reportTime=1716792956717, cpuUsage=0.15505475060192592, jvmMemoryUsage=0.04196171035015791, memoryUsage=0.769831657409668, diskUsage=0.0, serverStatus=BUSY, processId=28457, host=10.0.0.9, port=5678)
[WI-0][TI-0] - [INFO] 2024-05-27 14:55:57.721 +0800 o.a.d.s.m.c.MasterServerLoadProtection:[65] - Master OverLoad: the SystemMemoryUsedPercentage: 0.7698736190795898 is over then the MaxSystemMemoryUsagePercentageThresholds 0.7
[WI-0][TI-0] - [WARN] 2024-05-27 14:19:33.172 +0800 o.a.d.s.w.r.WorkerRegistryClient:[96] - Worker node is BUSY: WorkerHeartBeat(startupTime=1716790727924, reportTime=1716790772171, cpuUsage=0.16258915303038007, jvmMemoryUsage=0.04481780529022217, memoryUsage=0.75341796875, diskUsage=0.0, serverStatus=BUSY, processId=27119, host=10.0.0.9, port=1234, workerHostWeight=100, threadPoolUsage=0)
[WI-0][TI-0] - [INFO] 2024-05-27 14:19:33.173 +0800 o.a.d.s.w.c.WorkerServerLoadProtection:[65] - Worker OverLoad: the SystemMemoryUsedPercentage: 0.7528047561645508 is over then the MaxSystemMemoryUsagePercentageThresholds 0.7

解决方法: 更改负载保护配置
方式一: 更改 master.enabled 为 false
方式二: 更改 合适的阈值

master:
...
  # 负载保护配置
  server-load-protection:
    # If set true, will open master overload protection
    enabled: true
    # Master max cpu usage, when the master's cpu usage is smaller then this value, master server can execute workflow.
    max-cpu-usage-percentage-thresholds: 0.7
    # Master max JVM memory usage , when the master's jvm memory usage is smaller then this value, master server can execute workflow.
    max-jvm-memory-usage-percentage-thresholds: 0.7
    # Master max System memory usage , when the master's system memory usage is smaller then this value, master server can execute workflow.
    max-system-memory-usage-percentage-thresholds: 0.7
    # Master max disk usage , when the master's disk usage is smaller then this value, master server can execute workflow.
    max-disk-usage-percentage-thresholds: 0.7
...
Logo

更多推荐