DolphinScheduler 3.2.2 详细安装配置文档(适配 Ubuntu20.04 + Spark3.4.4 + Hive3.1.3 + MySQL8.0.42)
DolphinScheduler 相比 Airflow 更适配大数据场景(原生支持Spark/Hive/YARN),无需额外适配大数据组件
本文档基于已下载的 apache-dolphinscheduler-3.2.2-bin.tar.gz 安装包,完整覆盖环境准备、安装部署、核心配置、服务启动、Web UI 验证全流程,可直接用于生产级部署。
一、前置环境检查
1.1 基础环境要求
| 组件 | 版本要求 | 你的环境状态 |
|---|---|---|
| JDK1.8.x(必须,无需重复安装)✅ 已安装JDK8,跳过重装 | 1.8.x(必须) | ✅ 已安装 JDK8 |
| MySQL | 8.0.x | ✅ 已安装 MySQL8.0.42 |
| Hadoop | 3.x | ✅ 已安装 Hadoop3.3.4 |
| Spark | 3.x | ✅ 已安装 Spark3.4.4 |
| Hive | 3.x | ✅ 已安装 Hive3.1.3 |
| 系统 | Ubuntu20.04 | ✅ 已满足 |
| 内存 | ≥4G(推荐8G) | 建议虚拟机分配≥4G内存 |
1.2 仅安装必需依赖(避坑说明)
你已提前安装JDK8,无需重复安装;其余依赖(libmysqlclient-dev、build-essential等)对单机部署非必需,只需要安装sshpass和net-tools即可,避免冗余操作和环境冲突。
# 仅安装必需依赖:sshpass(DS节点通信必备,其余依赖已满足)
sudo apt update && sudo apt install -y sshpass
# 再安装`netstat
sudo apt update && sudo apt install -y net-tools
1.3 DolphinScheduler安装解压
#确认安装包位置
#假如已下载安装包到 /home/db2305070135/ 目录:
# 直接解压到/usr/local/(无需先移动安装包,一步到位)
sudo tar -zxvf /home/db2305070135/apache-dolphinscheduler-3.2.2-bin.tar.gz -C /usr/local/
# 修改权限(避免后续操作权限不足)
sudo chown -R db2305070135:db2305070135 /usr/local/apache-dolphinscheduler-3.2.2-bin
# 给用户db2305070135 建立软连接
ln -s /usr/local/apache-dolphinscheduler-3.2.2-bin /home/db2305070135/dolphinscheduler-3.2.2
输出存在即确认成功。
1.4 目录结构说明
解压后目录结构如下:
/usr/local/apache-dolphinscheduler-3.2.2-bin/
├── bin/
│ └── env/
│ ├── dolphinscheduler_env.sh # 环境变量配置(核心)
│ ├── install_env.sh # 安装环境配置
│ └── ...
├── alert-server/
│ └── conf/ # 告警模块配置
├── api-server/
│ └── conf/ # API模块配置
├── master-server/
│ └── conf/ # Master模块配置
└── worker-server/
└── conf/ # Worker模块配置
二、MySQL 元数据配置(核心)
2.1 准备 MySQL 8.0 驱动
已下载 mysql-connector-j-8.0.33.zip,直接拷贝驱动到 DolphinScheduler:
# 解压驱动包【之前如果已解压过,则不用再解压,直接取里面的驱动文件jar即可】
unzip /home/db2305070135/mysql-connector-j-8.0.33.zip -d /home/db2305070135/
# 复制驱动 jar 到 DolphinScheduler libs 目录
cp /home/db2305070135/mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar /usr/local/apache-dolphinscheduler-3.2.2-bin/libs
# 删除可能存在的旧版驱动(避免冲突)
rm -f /usr/local/apache-dolphinscheduler-3.2.2-bin/libs/mysql-connector-java-5.1.*.jar
2.2 创建 DolphinScheduler 数据库
# 登录 MySQL(输入你的 MySQL 密码)
mysql -uroot -p
# 执行以下 SQL 创建数据库
CREATE DATABASE IF NOT EXISTS dolphinscheduler
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
# 授权(确保本地可访问)
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
EXIT;
2.3 修改数据库连接配置
- 【所有模块(master/api/alert)的 application.yaml 都要做同样的 3 处修改,保持配置一致】
- 【worker的,另外改】
- 【tools的,另外改】
master-server ✅ 必须改 主节点,必须连接 MySQL
worker-server ✅ 必须改 任务执行节点,必须连接 MySQL
api-server ✅ 必须改 API 网关,必须连接 MySQL
alert-server ✅ 必须改 告警服务,必须连接 MySQL
standalone-server ❌ 不要改 这是单机模式模板,不用动
2.4❌【初始化时,报错:Invalid profile [] 】
### 初始化
跳过所有 Profile 解析的命令,强制指定 MySQL 参数执行初始化:
# 进入tools根目录
cd /usr/local/apache-dolphinscheduler-3.2.2-bin/tools
# 复制MySQL驱动到libs(必做)
cp /home/db2305070135/mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar ./libs/
# 强制指定MySQL参数执行初始化(核心命令)
java -cp "libs/*" \
-Dspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver \
-Dspring.datasource.url=jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true \
-Dspring.datasource.username=root \
-Dspring.datasource.password=123456 \
org.apache.dolphinscheduler.tools.datasource.SchemaUpgradeTool
# 2. 用相对路径调用bin目录下的脚本
bin/upgrade-schema.sh
✅ 成功标志:终端无报错,最后输出 Schema upgrade completed successfully。
三、环境变量与组件适配配置
3.1 配置 DolphinScheduler 环境变量
# 编辑环境变量脚本
nano /usr/local/apache-dolphinscheduler-3.2.2-bin/bin/env/dolphinscheduler_env.sh
替换为以下内容(适配你的组件路径):
#!/bin/bash
# JDK 8 配置
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
# Hadoop 配置
export HADOOP_HOME=/usr/local/hadoop-3.3.4
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
# Hive 配置
export HIVE_HOME=/usr/local/apache-hive-3.1.3-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$HIVE_HOME/bin:$PATH
# Spark 配置
export SPARK_HOME=/usr/local/spark-3.4.4-bin-hadoop3
export SPARK_CONF_DIR=$SPARK_HOME/conf
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
# 追加到系统 PATH
export PATH=$DOLPHINSCHEDULER_HOME/bin:$PATH
3.2 赋予脚本执行权限
chmod +x /usr/local/apache-dolphinscheduler-3.2.2-bin/bin/*
chmod +x /usr/local/apache-dolphinscheduler-3.2.2-bin/bin/env/*.sh
四、启动 DolphinScheduler 服务
# 进入启动脚本目录
cd /usr/local/apache-dolphinscheduler-3.2.2-bin/bin
# 逐个启动
./dolphinscheduler-daemon.sh start master-server
./dolphinscheduler-daemon.sh start worker-server
./dolphinscheduler-daemon.sh start api-server
./dolphinscheduler-daemon.sh start alert-server
./dolphinscheduler-daemon.sh start standalone-server
# 逐个关闭
# 1. 关闭 Standalone 主服务(如果之前启动过)
./dolphinscheduler-daemon.sh stop standalone-server
./dolphinscheduler-daemon.sh stop master-server
./dolphinscheduler-daemon.sh stop worker-server
./dolphinscheduler-daemon.sh stop api-server
./dolphinscheduler-daemon.sh stop alert-server
4.1 验证服务启动
# 查看 Java 进程
jps | grep -E 'MasterServer|WorkerServer|ApiApplicationServer|AlertServer'
✅ 成功标志:输出包含以下 5 个进程:
MasterServerWorkerServerApiApplicationServerAlertServerstandaloneserver
4.2 查看日志(排查问题用)
# 查看 Master 日志
tail -f /usr/local/apache-dolphinscheduler-3.2.2-bin/standalone-server/logs/dolphinscheduler-master.log
# 查看 Worker 日志
tail -f /usr/local/apache-dolphinscheduler-3.2.2-bin/standalone-serverstandalone-server/logs/dolphinscheduler-worker.log
4.3 服务启动时卡死(先前开了hadoop、hive服务,导致内存不够)
# 先关闭虚拟机
# 将原本4G内存设为8G内存,再启动虚拟机去操作
五、Web UI 访问与初始配置
5.1 访问地址
- 地址:
http://你的虚拟机IP:12345/dolphinscheduler/ui(如 http://192.168.122.128:12345/dolphinscheduler/ui) - 默认账号:
admin - 默认密码:
dolphinscheduler123
5.2 首次登录后配置
5.2.1 创建租户(关联 Linux 用户)
-
登录 → 安全中心 → 租户管理 → 创建租户
- 租户名称:
db2305070135(你的 Linux 用户名) - 队列名称:
default(YARN 默认队列) - 描述:
ETL 调度租户
- 租户名称:
-
点击保存。
5.2.2 配置 Hive 数据源
【虚拟机里Hive Metastore 服务必须先启动】 hive --service metastore 或者后台启动(推荐,不占终端): nohup hive --service metastore &
-
数据中心 → 资源管理
- 数据源类型:
HIVE - 数据源名称:
hive_3.1.3 - Hive 地址:
thrift://localhost:9083(Hive Metastore 地址) - IP / 主机名:填写 localhost
- 端口:填写 9083
- 数据库名称:填写 default(Hive 默认数据库)
- 用户名 / 密码:留空(测试环境一般不需要)
- 数据源类型:
-
点击「测试连接」,提示「连接成功」后保存。
5.2.3 配置 Spark 任务模板
-
项目管理 → 任务模板 → 新建模板
- 模板名称:
spark_etl_template - 任务类型:
SPARK - Spark 主节点:
yarn(或local[2]用于测试) - 部署模式:
client - 资源配置:
--executor-memory 2G --executor-cores 1 --num-executors 2
- 模板名称:
-
保存模板,后续创建 ETL 任务可直接复用。
六、常见问题排查
问题1:MySQL 连接失败
-
现象:
upgrade-schema.sh报错Access denied for user 'root'@'localhost' -
解决:
-
确认
application.yaml中 MySQL 密码正确 -
执行 MySQL 命令修改认证方式:
-
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES;
-
-
问题2:WorkerServer 启动失败
-
现象:
jps无WorkerServer进程 -
解决:
- 查看 Worker 日志:
tail -f logs/dolphinscheduler-worker.log - 检查端口占用:
netstat -tulpn | grep 8888(默认 Worker 端口 8888) - 修改
conf/application.yaml中dolphinscheduler.worker.port为未占用端口
- 查看 Worker 日志:
问题3:Spark 任务执行失败
-
现象:任务日志提示
spark-submit: command not found -
解决:
- 确认
dolphinscheduler_env.sh中SPARK_HOME配置正确 - 重启 Worker 服务:
./dolphinscheduler-daemon.sh restart worker
- 确认
七、生产环境优化建议
-
开机自启:将
start-all.sh加入systemd服务,实现服务器重启后自动启动 DolphinScheduler。 -
资源隔离:为不同业务创建独立租户和 YARN 队列,避免资源争抢。
-
告警配置:在 Web UI → 告警中心配置邮件/钉钉告警,监控任务失败和资源过载。
-
日志持久化:修改
conf/logback.xml,将日志存储到 HDFS,避免本地磁盘占满。 -
创建第一个 Spark ETL 工作流(ODS→DWD→DWS→ADS)
-
配置定时调度(如每天凌晨1点执行)
-
测试数据从 HDFS → Hive → Spark 的全链路流转