DolphinScheduler 3.2.2 在 Ubuntu 20.04 上的伪分布式(单机)安装文档
(适配 Ubuntu20.04 + Spark3.4.4 + Hive3.1.3 + MySQL8.0.42)
伪分布式 = 单机部署所有服务(Master/Worker/Api/Alert),生产/学习通用,最稳定、最简单
一、伪分布式说明(非常重要)
- 伪分布式 = 1台机器运行全部服务(Master + Worker + Api + Alert)
- 不使用 standalone-server(那个是开发测试用,不稳定)
- 所有配置文件统一修改
- 所有服务在同一台机器启动
- 完全兼容 Hadoop、Spark、Hive 伪分布式环境
二、前置条件(你已满足)
- JDK 1.8 ✅
- MySQL 8.0.42 ✅
- Hadoop 3.3.4(伪分布式)✅
- Spark 3.4.4 ✅
- Hive 3.1.3 ✅
- Ubuntu 20.04 ✅
- 内存 ≥4G(推荐8G)✅
三、安装
第一步:基础依赖安装
sudo apt update
sudo apt install -y sshpass net-tools
第二步:解压 DolphinScheduler 并赋权
# 解压
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
# 软连接(方便使用)
ln -s /usr/local/apache-dolphinscheduler-3.2.2-bin /home/db2305070135/dolphinscheduler
四、MySQL 驱动配置
# 解压驱动
unzip /home/db2305070135/mysql-connector-j-8.0.33.zip -d /home/db2305070135/
# 复制到所有需要的目录(伪分布式必须全复制)
cp /home/db2305070135/mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar ~/dolphinscheduler/libs/
cp /home/db2305070135/mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar ~/dolphinscheduler/api-server/libs/
cp /home/db2305070135/mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar ~/dolphinscheduler/master-server/libs/
cp /home/db2305070135/mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar ~/dolphinscheduler/worker-server/libs/
cp /home/db2305070135/mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar ~/dolphinscheduler/alert-server/libs/
cp /home/db2305070135/mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar ~/dolphinscheduler/tools/libs/
# 删除旧驱动
rm -f ~/dolphinscheduler/libs/mysql-connector-java-5*
五、创建 MySQL 数据库
mysql -uroot -p
#执行:
CREATE DATABASE IF NOT EXISTS dolphinscheduler DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON dolphinscheduler.* TO 'root'@'localhost';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
EXIT;
六、伪分布式核心配置(必须全部改完)
#下面 5 个配置文件 全部统一修改,伪分布式标准配置。
1. 环境变量 env.sh
nano ~/dolphinscheduler/bin/env/dolphinscheduler_env.sh
替换成下面内容(路径完全匹配你的环境):
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/usr/local/hadoop-3.3.4
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_HOME=/usr/local/apache-hive-3.1.3-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export SPARK_HOME=/usr/local/spark-3.4.4-bin-hadoop3
export SPARK_CONF_DIR=$SPARK_HOME/conf
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$SPARK_HOME/bin:$PATH
2. 修改 4 个模块的数据库连接(全部一样)
你需要修改这 4 个文件:
master-server/conf/application.yamlworker-server/conf/application.yamlapi-server/conf/application.yamlalert-server/conf/application.yaml
#修改内容
1. 改 master-server/conf/application.yaml
第 1 处
spring:
profiles:
active: postgresql
改成
spring:
profiles:
active: mysql
第 2 处(文件最下面)
password: root
改成
password: 123456
---
2. 改 api-server/conf/application.yaml
第 1 处
spring:
profiles:
active: postgresql
改成
spring:
profiles:
active: mysql
第 2 处(最下面)
password: root
改成
password: 123456
---
3. 改 alert-server/conf/application.yaml
第 1 处
spring:
profiles:
active: postgresql
改成
spring:
profiles:
active: mysql
第 2 处(最下面)
password: root
改成
password: 123456
---
4. 改 worker-server/conf/application.yaml
第 1 处:删除这一行
exclude:
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
第 2 处:在下面添加 MySQL 配置
加到这里:
spring:
banner:
charset: UTF-8
jackson:
time-zone: UTC
date-format: "yyyy-MM-dd HH:mm:ss"
# 在这里加下面的 datasource 配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
username: root
password: 123456
5. 改 `tools/conf/application.yaml`【tools 模块数据库配置(初始化用)】
第 1 处:把默认启用的 postgresql 改成 mysql
找到:
spring:
main:
banner-mode: off
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://127.0.0.1:5432/dolphinscheduler
username: root
password: root
**直接替换成:**
spring:
main:
banner-mode: off
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
username: root
password: 123456
第 2 处:下面 mysql 段密码也改成 123456
找到:
password: root
改成:
password: 123456
七、初始化元数据(最关键)
### 初始化
# 进入tools根目录
cd /usr/local/apache-dolphinscheduler-3.2.2-bin/tools
# 解决「权限不够」的问题
chmod +x bin/upgrade-schema.sh
# 2. 用相对路径调用bin目录下的脚本
DATABASE=mysql ./bin/upgrade-schema.sh
✅ 成功标志:
Schema upgrade completed successfully
八、伪分布式启动所有服务
### 启动命令(按顺序)
cd ~/dolphinscheduler/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
#停止命令
cd ~/dolphinscheduler/bin
./dolphinscheduler-daemon.sh stop master-server
./dolphinscheduler-daemon.sh stop worker-server
./dolphinscheduler-daemon.sh stop api-server
./dolphinscheduler-daemon.sh stop alert-server
九、验证启动成功
jps
#必须出现 4 个进程:
- MasterServer
- WorkerServer
- ApiApplicationServer
- AlertServer
✅ 出现即成功!
十、Web UI 访问
- 地址:
http://你的虚拟机IP:12345/dolphinscheduler/ui(如http://192.168.122.128:12345/dolphinscheduler/ui) - 账号:
admin - 密码:
dolphinscheduler123
查看虚拟机IP:
hostname -I
十一、伪分布式必做配置(任务能跑才完整)
#12.1 创建租户
安全中心 → 租户管理 → 创建租户
- 租户名称:`db2305070135`(Linux 当前用户)
- 队列:`default`
- 保存
#12.2 启动 Hive Metastore(必须后台运行)
nohup hive --service metastore > /dev/null 2>&1 &
#12.3 配置 Hive 数据源
数据中心 → 数据源 → 创建 → HIVE
- 名称:hive3
- 地址:thrift://[localhost:9083](http://localhost:9083)
- 数据库:default
- 测试连接 → 成功 → 保存
十二、日志查看(排查错误用)
# Master
tail -f ~/dolphinscheduler/master-server/logs/*.log
# Worker
tail -f ~/dolphinscheduler/worker-server/logs/*.log
# Api
tail -f ~/dolphinscheduler/api-server/logs/*.log
十三、常见问题
1. ❌启动后立刻崩溃退出(ZooKeeper 连接超时)
# 查看日志
tail -f /usr/local/apache-dolphinscheduler-3.2.2-bin/api-server/logs/*.log
# 验证 ZK 是否启动成功
zkServer.sh status
# 验证 ZK 端口监听
sudo netstat -tlnp | grep 2181
# 清理 ZK 数据目录(解决 ZooKeeper 假死)
rm -rf /usr/local/apache-zookeeper-3.8.0-bin/data/*
# 独立安装的 ZooKeeper,用对应命令启动
zkServer.sh start
2.❌网页访问不了(防火墙拦截了 12345 端口)
# 检查1234端口是否被占用
sudo netstat -tlnp | grep 1234
# 放行 12345 端口
sudo ufw allow 12345/tcp
sudo ufw reload
# 验证端口是否放行
sudo ufw status
# 重启所有DolphinScheduler服务,再尝试