一、环境准备
系统要求
JDK 1.8:需配置
JAVA_HOME环境变量 。MySQL 5.7:用于持久化元数据(避免默认 H2 数据库重启丢失数据),本文使用的mysql5.7。
MySQL驱动:使用 mysql-connector-java-5.1.49-bin.jar(注意:部分版本存在兼容性问题)。
DolphinScheduler:版本:3.2.2
系统:Ubuntu 22.04 LTS
二、安装部署流程
1. 下载与解压
# 下载dolphinscheduler
wget https://www.apache.org/dyn/closer.lua/dolphinscheduler/3.2.2/apache-dolphinscheduler-3.2.2-bin.tar.gz
#解压dolphinscheduler
tar -zxvf apache-dolphinscheduler-3.2.2-bin.tar.gz2. 在当前ubuntu用户中配置jdk
vim ~/.bashrc
在最后添加如下内容:
export JAVA_HOME=/home/ubuntu/apps/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin最后执行:source ~/.bashrc
注:在~/.bashrc 中配置,环境变量只在当前用户生效,这里的用户名是:ubuntu
3. 配置MySQL数据库
# 创建数据库:dolphinscheduler
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
#创建用户:dolphinscheduler
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY '123456';
#将库dolphinscheduler中的所有表开放给用户dolphinscheduler
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
#使上面指令生效
FLUSH PRIVILEGES;4. 复制MySQL驱动到standalone-server模块的libs下
# 1、standalone-server的libs
cp mysql-connector-java-5.1.49-bin.jar ~/apps/apache-dolphinscheduler-3.2.2-bin/standalone-server/libs/standalone-server
# 2、tools目录下也需要,用于初始化dolphin数据库
cp mysql-connector-java-5.1.49-bin.jar ~/apps/apache-dolphinscheduler-3.2.2-bin/tools/libs/5. 配置环境变量
编辑 ~/apps/apache-dolphinscheduler-3.2.2-bin/bin/env/dolphinscheduler_env.sh:
export DATABASE=mysql
export SPRING_PROFILES_ACTIVE=mysql
export SPRING_DATASOURCE_URL="jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME=dolphinscheduler
export SPRING_DATASOURCE_PASSWORD=1234566. 初始化数据库
#添加执行权限
chmod +x ~/apps/apache-dolphinscheduler-3.2.2-bin/tools/bin/upgrade-schema.sh
#初始化数据库
bash ~/apps/apache-dolphinscheduler-3.2.2-bin/tools/bin/upgrade-schema.sh成功执行后,MySQL中会生成元数据表 。

7. 修改standalone应用的数据库配置
编辑 standalone-server/conf/application.yaml:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: dolphinscheduler
password: 123456格式要求:YAML文件严格对齐空格 。
如果是mysql8,driverclassname改为:com.mysql.cj.jdbc.Driver
8、修改资源目录
vim $DOLPHIN_HOME/standalone-server/conf/common.properties
# 1. 资源存储类型:默认就是本地文件系统(无需修改,值为 LOCAL)
resource.storage.type=LOCAL
# 2. 本地资源存储根路径(必填,建议修改为实际本地目录,如 /data/dolphinscheduler/resources)
# 注意:该目录需要 DolphinScheduler 运行用户(如 dolphinscheduler)有读写权限
resource.storage.upload.base.path=/home/phoenix/data/dolphinscheduler三、启动与验证
1. 启动服务
cd ~/apps/apache-dolphinscheduler-3.2.2-bin
#启动dolphin
$DOLPHIN_HOME/bin/dolphinscheduler-daemon.sh start standalone-server
#查看dolphin状态
$DOLPHIN_HOME/bin/dolphinscheduler-daemon.sh status standalone-server # 查看状态
#停止dolphin
$DOLPHIN_HOME/bin/dolphinscheduler-daemon.sh stop standalone-server2. 访问Web UI
地址:http://localhost:12345/dolphinscheduler/ui
默认账号:
admin默认密码:
dolphinscheduler123
登录后可创建项目和工作流,重启服务验证元数据是否持久化 。
四、配置nginx代理
vim /etc/nginx/conf.d/dolphin.conf
server {
listen 443 ssl;
server_name dolphin.ncr.cool;
ssl_certificate /etc/nginx/ssl/dolphin.xxx.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/dolphin.xxx.com.key;
ssl_session_timeout 5m;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location /dolphinscheduler {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:12345/dolphinscheduler;
}
}
server {
listen 80;
#请填写绑定证书的域名
server_name dolphin.xxx.com;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}五、常见问题解决
1、 驱动不兼容报错
症状:
java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver解决:默认使用 8.0.16 版本驱动 ,如果使用的mysql5.7需要将standalone-server/conf/application.yaml中的driver-class-name修改为:com.mysql.jdbc.Driver
2、 如果数据库时mysql8,出现:Public Key Retrieval is not allowed 时:
Caused by: com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_202] at
解决:这个错误是由于 MySQL 8.0 的新的身份验证机制导致的。需要在数据库连接 URL 中添加参数来允许公钥检索:allowPublicKeyRetrieval=true,修改配置如下:
export SPRING_DATASOURCE_URL="jdbc:mysql://10.1.1.128:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true"3、日志文件位置
查看日志排查问题:~/apps/apache-dolphinscheduler-3.2.2-bin/standalone-server/logs/dolphinscheduler-standalone.log
4、启动工作流以后,在工作流实例和任务实例中看不到响应的工作流和任务

查看【监控中心】中的master和worker中内存使用情况,如果查过阈值90%,dolphin会暂停执行指令,需要给dolphin提供充足的内存。解决方法:
1)服务器有充足的内存,如果内存不足,需要增加服务器内存。
2)增加dolphin的内存分配,可以修改:~/apps/apache-dolphinscheduler-3.2.2-bin/standalone-server/bin/start.sh 中的JAVA_OPTS: -Xms2g -Xmx3g -Xmn1g
-Xms:初始堆内存(建议与-Xmx一致,避免动态扩容开销)
-Xmx:最大堆内存(不得超过物理内存的 70%)
-Xmn:新生代内存(建议为堆内存的 1/3~1/2)
六、dolphin开机自启动
1、编写开机自启脚本
cd /etc/systemd/system
sudo vim dolphinschduler.service
####内容如下####
[Unit]
Description=DolphinScheduler Standalone Server
After=network.target mysql.service
[Service]
Type=forking
User=phoenix
Group=phoenix
WorkingDirectory=/home/phoenix/apps/apache-dolphinscheduler-3.2.2-bin
ExecStart=/home/phoenix/apps/apache-dolphinscheduler-3.2.2-bin/bin/dolphinscheduler-daemon.sh start standalone-server
ExecStop=/home/phoenix/apps/apache-dolphinscheduler-3.2.2-bin/bin/dolphinscheduler-daemon.sh stop standalone-server
[Install]
WantedBy=multi-user.target2、启用开机自启
#添加执行权限:sudo chmod 755 dolphinschduler.service
#启动
sudo systemctl start dolphinschduler.service
#开机自启动
sudo systemctl enable dolphinschduler.service
注:如果启动失败,错误原因为:start.sh找不到bin/java。
修改$DOLPHIN_HOME/standalone-server/bin/start.sh,增加export JAVA_HOME=/home/phoenix/apps/jdk1.8.0_202

💎 总结
Standalone模式适合开发测试/轻量级生产环境,关键步骤是替换默认数据库为MySQL以避免数据丢失。部署完成后,可通过Web UI快速创建定时任务(如每5秒写入MySQL测试数据 ),并通过日志监控任务状态。如需高可用或大规模调度,可参考集群部署文档 。
评论