​一、环境准备​

  1. ​系统要求​

    • ​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.gz

2. 在当前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=123456

​6. 初始化数据库​

#添加执行权限
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-server

​2. 访问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.target

2、启用开机自启

#添加执行权限: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测试数据 ),并通过日志监控任务状态。如需高可用或大规模调度,可参考集群部署文档 。