在Ubuntu 22.04上,用DolphinScheduler 3.1.4单机版快速搭建你的第一个数据调度任务(附MySQL 8.0配置) 在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 11sudo 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安全初始化MySQLUbuntu 22.04默认使用auth_socket插件sudo mysql_secure_installation登录MySQL并修改root用户的认证方式ALTER USER rootlocalhost 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.policyLOW; SET GLOBAL validate_password.length4;2.3 配置文件定制修改bin/env/dolphinscheduler_env.sh环境变量export JAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64 export DATABASEmysql export SPRING_DATASOURCE_URLjdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicodetruecharacterEncodingUTF-8 export SPRING_DATASOURCE_USERNAMEds_user export SPRING_DATASOURCE_PASSWORDDs_123456配置standalone-server/conf/application.yamlspring: 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.0wget 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] DescriptionDolphinScheduler Standalone Server Afternetwork.target mysql.service [Service] Typeforking Userroot WorkingDirectory/opt/dolphinscheduler ExecStart/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start standalone-server ExecStop/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh stop standalone-server Restarton-failure [Install] WantedBymulti-user.target启用并启动服务sudo systemctl daemon-reload sudo systemctl enable dolphinscheduler sudo systemctl start dolphinscheduler3.3 访问Web UI默认访问地址http://localhost:12345/dolphinscheduler初始凭据用户名admin密码dolphinscheduler1234. 创建第一个调度任务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-threads10CPU核心数×2主节点并行度worker.exec-threads10CPU核心数×1.5工作节点并行度spring.datasource.max-active1050数据库连接池大小server.jetty.max-http-post-size5MB100MB文件上传限制5.3 高可用方案虽然本文介绍的是单机部署但你可以通过以下方式提升可靠性数据库主从复制定期元数据备份配置Zookeeper实现服务发现部署多个Worker节点6. 扩展功能探索6.1 邮件告警配置在安全中心-告警组管理中添加SMTP设置邮件服务器smtp.example.com 端口465 账号alertexample.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(urlhttp://localhost:12345, useradmin, passworddolphinscheduler123) project ds.get_project(First_Project) project.create_workflow( nameAPI_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