DolphinScheduler分布式调度系统二开 - 编译、打包、部署
初始化脚步路径: ./dolphinscheduler/dolphinscheduler-dao/src/main/resources/sql。数据库链接后增加 useSSL=false。提示MySQL链接不上。
1、环境安装
- zookeeper
- mysql
- jdk 1.8
2、下载项目代码
gitee: https://gitee.com/dolphinscheduler/DolphinScheduler.git
github: https://github.com/apache/dolphinscheduler.gitgit 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/target
下 bin.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
...
更多推荐
所有评论(0)