news 2026/5/21 5:13:01

在Ubuntu 22.04上,用DolphinScheduler 3.1.4单机版快速搭建你的第一个数据调度任务(附MySQL 8.0配置)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在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.list

1.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/dolphinscheduler

2.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.sh

3. 服务启动与验证

3.1 启动单机服务

使用内置脚本启动:

./bin/dolphinscheduler-daemon.sh start standalone-server

验证服务状态:

ps aux | grep dolphinscheduler

3.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 dolphinscheduler

3.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.py

4.2 配置工作流

  1. 登录UI后创建项目 -> 选择"项目管理"
  2. 点击"创建工作流" -> 命名为"First_Pipeline"
  3. 在画布中添加"Shell"节点:
    python3 /opt/scripts/data_processor.py /tmp/ds_result.txt
  4. 设置依赖关系和调度周期(如每分钟执行)
  5. 保存并上线工作流

4.3 任务监控与排错

在"工作流实例"页面可以:

  • 查看任务执行状态
  • 检查执行日志
  • 分析运行时长统计
  • 下载任务输出文件

常见问题排查命令:

# 查看服务日志 tail -f /opt/dolphinscheduler/standalone-server/logs/dolphinscheduler-standalone.log # 验证Python环境 sudo -u dolphinscheduler python3 --version # 检查文件权限 namei -l /opt/scripts/data_processor.py

5. 生产环境优化建议

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 高可用方案

虽然本文介绍的是单机部署,但你可以通过以下方式提升可靠性:

  1. 数据库主从复制
  2. 定期元数据备份
  3. 配置Zookeeper实现服务发现
  4. 部署多个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.sql

7.2 版本升级步骤

  1. 停止当前服务
  2. 备份数据库和配置文件
  3. 下载新版本解压
  4. 迁移配置文件
  5. 执行数据库升级脚本
  6. 启动新版本服务

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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/21 5:11:08

别再傻傻分不清!GDT、TSS、TVS、ESD这四种保护器件,到底怎么选?(附选型速查表)

电子工程师必读&#xff1a;四大瞬态保护器件深度解析与精准选型指南 在工业自动化设备突然宕机、通信基站遭遇雷击后接口损坏、消费电子产品因静电放电失效的案例中&#xff0c;超过60%的故障根源都指向同一个问题——瞬态电压防护器件选型不当。当示波器上出现那些纳秒级的高…

作者头像 李华
网站建设 2026/5/21 5:10:04

AMD Ryzen终极调优指南:SMUDebugTool实战深度解析

AMD Ryzen终极调优指南&#xff1a;SMUDebugTool实战深度解析 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcod…

作者头像 李华
网站建设 2026/5/21 5:06:06

C++继承详细介绍

在我们进行开发的时候&#xff0c;我们经常会遇到抽象出来的类之间具有继承关系。举个简单的例子&#xff0c;比如我们在设计某游戏&#xff0c;当中需要定义Human也就是人这个类。每个人有名字&#xff0c;以及一定的血量&#xff0c;能够工作。也就是说Human这个类具有名字和…

作者头像 李华