在Ubuntu 22.04上快速部署DolphinScheduler 3.1.4单机版实战指南
对于开发者和小型团队而言,一个轻量级但功能完备的任务调度系统可以显著提升数据处理的自动化水平。本文将带你在Ubuntu 22.04 LTS环境下,从零开始部署DolphinScheduler 3.1.4单机版,并完成首个Python任务的创建与调度。不同于通用Linux教程,我们会特别关注Ubuntu特有的apt软件源管理、systemd服务集成以及MySQL 8.0的安全策略调整等细节问题。
1. 环境准备与依赖安装
1.1 系统基础配置
首先确保你的Ubuntu 22.04系统已更新到最新状态:
sudo apt update && sudo apt upgrade -y sudo apt install -y wget curl unzip对于国内用户,建议配置阿里云或清华大学的apt镜像源以加速下载:
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list1.2 Java环境安装
DolphinScheduler需要Java 8或更高版本。我们推荐使用OpenJDK 11:
sudo apt install -y openjdk-11-jdk验证安装是否成功:
java -version提示:如果系统已安装多个Java版本,可通过
sudo update-alternatives --config java切换默认版本
1.3 MySQL 8.0安装与配置
安装MySQL服务器和客户端:
sudo apt install -y mysql-server安全初始化MySQL(Ubuntu 22.04默认使用auth_socket插件):
sudo mysql_secure_installation登录MySQL并修改root用户的认证方式:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES;2. DolphinScheduler核心部署
2.1 下载与解压
获取3.1.4版本二进制包:
wget https://archive.apache.org/dist/dolphinscheduler/3.1.4/apache-dolphinscheduler-3.1.4-bin.tar.gz tar -zxvf apache-dolphinscheduler-3.1.4-bin.tar.gz -C /opt创建符号链接便于版本管理:
sudo ln -s /opt/apache-dolphinscheduler-3.1.4-bin /opt/dolphinscheduler2.2 数据库准备
创建专用数据库和用户:
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'ds_user'@'%' IDENTIFIED BY 'Ds_123456'; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'ds_user'@'%'; FLUSH PRIVILEGES;调整MySQL 8.0的密码策略(仅开发环境建议):
SET GLOBAL validate_password.policy=LOW; SET GLOBAL validate_password.length=4;2.3 配置文件定制
修改bin/env/dolphinscheduler_env.sh环境变量:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export DATABASE=mysql export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8" export SPRING_DATASOURCE_USERNAME="ds_user" export SPRING_DATASOURCE_PASSWORD="Ds_123456"配置standalone-server/conf/application.yaml:
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: ${SPRING_DATASOURCE_URL} username: ${SPRING_DATASOURCE_USERNAME} password: ${SPRING_DATASOURCE_PASSWORD}2.4 驱动安装与初始化
下载MySQL Connector/J 8.0:
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar cp mysql-connector-java-8.0.28.jar /opt/dolphinscheduler/standalone-server/libs/执行数据库初始化:
cd /opt/dolphinscheduler bash tools/bin/upgrade-schema.sh3. 服务启动与验证
3.1 启动单机服务
使用内置脚本启动:
./bin/dolphinscheduler-daemon.sh start standalone-server验证服务状态:
ps aux | grep dolphinscheduler3.2 配置systemd服务(可选)
创建服务单元文件/etc/systemd/system/dolphinscheduler.service:
[Unit] Description=DolphinScheduler Standalone Server After=network.target mysql.service [Service] Type=forking User=root WorkingDirectory=/opt/dolphinscheduler ExecStart=/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start standalone-server ExecStop=/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop standalone-server Restart=on-failure [Install] WantedBy=multi-user.target启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable dolphinscheduler sudo systemctl start dolphinscheduler3.3 访问Web UI
默认访问地址:http://localhost:12345/dolphinscheduler
初始凭据:
- 用户名:admin
- 密码:dolphinscheduler123
4. 创建第一个调度任务
4.1 准备Python脚本
创建示例脚本/opt/scripts/data_processor.py:
#!/usr/bin/env python3 import datetime import sys def main(): output_file = sys.argv[1] if len(sys.argv) > 1 else "/tmp/ds_output.txt" with open(output_file, 'w') as f: f.write(f"任务执行时间: {datetime.datetime.now()}\n") f.write("这是DolphinScheduler执行的第一个Python任务!\n") if __name__ == "__main__": main()赋予执行权限:
chmod +x /opt/scripts/data_processor.py4.2 配置工作流
- 登录UI后创建项目 -> 选择"项目管理"
- 点击"创建工作流" -> 命名为"First_Pipeline"
- 在画布中添加"Shell"节点:
python3 /opt/scripts/data_processor.py /tmp/ds_result.txt - 设置依赖关系和调度周期(如每分钟执行)
- 保存并上线工作流
4.3 任务监控与排错
在"工作流实例"页面可以:
- 查看任务执行状态
- 检查执行日志
- 分析运行时长统计
- 下载任务输出文件
常见问题排查命令:
# 查看服务日志 tail -f /opt/dolphinscheduler/standalone-server/logs/dolphinscheduler-standalone.log # 验证Python环境 sudo -u dolphinscheduler python3 --version # 检查文件权限 namei -l /opt/scripts/data_processor.py5. 生产环境优化建议
5.1 安全加固措施
- 修改默认管理员密码
- 启用HTTPS访问
- 配置IP白名单限制
- 定期备份元数据库
5.2 性能调优参数
关键配置项调整:
| 参数 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
| master.exec-threads | 10 | CPU核心数×2 | 主节点并行度 |
| worker.exec-threads | 10 | CPU核心数×1.5 | 工作节点并行度 |
| spring.datasource.max-active | 10 | 50 | 数据库连接池大小 |
| server.jetty.max-http-post-size | 5MB | 100MB | 文件上传限制 |
5.3 高可用方案
虽然本文介绍的是单机部署,但你可以通过以下方式提升可靠性:
- 数据库主从复制
- 定期元数据备份
- 配置Zookeeper实现服务发现
- 部署多个Worker节点
6. 扩展功能探索
6.1 邮件告警配置
在"安全中心"-"告警组管理"中添加SMTP设置:
邮件服务器:smtp.example.com 端口:465 账号:alert@example.com SSL:开启6.2 第三方系统集成
DolphinScheduler支持与多种系统对接:
- 数据源:MySQL, PostgreSQL, Hive, Spark等
- 文件存储:HDFS, S3, OSS
- 消息队列:Kafka, RabbitMQ
- 云平台:AWS, Azure, 阿里云
6.3 API开发接口
示例:通过Python API创建工作流
from dolphinscheduler import api ds = api.DolphinScheduler(url="http://localhost:12345", user="admin", password="dolphinscheduler123") project = ds.get_project("First_Project") project.create_workflow( name="API_Created_Workflow", tasks=[ { "type": "SHELL", "name": "data_task", "params": {"command": "python3 /opt/scripts/data_processor.py"} } ] )7. 日常维护操作
7.1 备份与恢复
元数据库备份命令:
mysqldump -u root -p dolphinscheduler > dolphinscheduler_backup_$(date +%F).sql恢复数据库:
mysql -u root -p dolphinscheduler < dolphinscheduler_backup_2023-08-01.sql7.2 版本升级步骤
- 停止当前服务
- 备份数据库和配置文件
- 下载新版本解压
- 迁移配置文件
- 执行数据库升级脚本
- 启动新版本服务
7.3 日志清理策略
配置logrotate自动管理日志:
sudo tee /etc/logrotate.d/dolphinscheduler <<EOF /opt/dolphinscheduler/standalone-server/logs/*.log { daily missingok rotate 30 compress delaycompress notifempty create 644 dolphinscheduler dolphinscheduler } EOF