1. 首页 > 软件下载 > 正文

DolphinScheduler下载-分布式工作流调度系统下载地址-DolphinScheduler安装部署方法

1. DolphinScheduler简介与版本说明

Apache DolphinScheduler是一个分布式、易扩展的可视化DAG工作流任务调度平台,致力于解决数据处理流程中复杂的依赖关系。DolphinScheduler提供了可视化的工作流编排界面,支持丰富的任务类型和调度策略。更多学习教程www.fgedu.net.cn

DolphinScheduler最新版本:

DolphinScheduler 3.2.1 (2024年最新稳定版)
DolphinScheduler 3.2.0 (2024年稳定版)
DolphinScheduler 3.1.9 (2023年稳定版)
DolphinScheduler 3.1.8 (2023年稳定版)
DolphinScheduler 2.0.7 (历史LTS版本)

DolphinScheduler支持的作业类型:

数据处理类:
– Shell任务
– Python任务
– SQL任务(MySQL、PostgreSQL、Hive、SparkSQL等)
– Spark任务
– MapReduce任务
– Flink任务
– DataX任务
– Sqoop任务
– Hive任务

容器与云原生:
– Kubernetes任务
– Docker任务
– HTTP任务
– SubProcess子流程

其他类型:
– 条件任务
– 依赖任务
– 参数传递任务
– 补数任务

2. DolphinScheduler下载方式

DolphinScheduler提供多种下载方式,包括官方下载、Docker镜像、Helm Chart等。学习交流加群风哥微信: itpux-com

方式一:官方下载

# 创建下载目录
$ mkdir -p /fgeudb/software/dolphinscheduler
$ cd /fgeudb/software/dolphinscheduler

# 下载DolphinScheduler 3.2.1
$ wget https://archive.apache.org/dist/dolphinscheduler/3.2.1/apache-dolphinscheduler-3.2.1-bin.tar.gz

# 下载源码包(可选)
$ wget https://archive.apache.org/dist/dolphinscheduler/3.2.1/apache-dolphinscheduler-3.2.1-src.tar.gz

# 查看下载文件
$ ls -lh

输出示例如下:
total 850M
-rw-r–r– 1 root root 850M Apr 4 10:00 apache-dolphinscheduler-3.2.1-bin.tar.gz
-rw-r–r– 1 root root 150M Apr 4 10:00 apache-dolphinscheduler-3.2.1-src.tar.gz

方式二:国内镜像下载

# 使用阿里云镜像
$ wget https://mirrors.aliyun.com/apache/dolphinscheduler/3.2.1/apache-dolphinscheduler-3.2.1-bin.tar.gz

# 使用华为云镜像
$ wget https://mirrors.huawei.com/apache/dolphinscheduler/3.2.1/apache-dolphinscheduler-3.2.1-bin.tar.gz

# 使用清华大学镜像
$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/dolphinscheduler/3.2.1/apache-dolphinscheduler-3.2.1-bin.tar.gz

方式三:Docker镜像下载

# 拉取DolphinScheduler镜像
$ docker pull apache/dolphinscheduler-standalone-server:3.2.1

# 拉取Master镜像
$ docker pull apache/dolphinscheduler-master:3.2.1

# 拉取Worker镜像
$ docker pull apache/dolphinscheduler-worker:3.2.1

# 拉取API Server镜像
$ docker pull apache/dolphinscheduler-api:3.2.1

# 拉取Alert Server镜像
$ docker pull apache/dolphinscheduler-alert-server:3.2.1

# 查看镜像列表
$ docker images | grep dolphinscheduler

输出示例如下:
apache/dolphinscheduler-standalone-server 3.2.1 abc123def456 7 days ago 1.2GB
apache/dolphinscheduler-master 3.2.1 def456ghi789 7 days ago 850MB
apache/dolphinscheduler-worker 3.2.1 ghi789jkl012 7 days ago 900MB

方式四:Docker Compose部署

# 下载docker-compose配置
$ wget https://github.com/apache/dolphinscheduler/raw/3.2.1/deploy/docker/docker-compose.yml

# 启动服务
$ docker-compose up -d

输出示例如下:
Creating network “dolphinscheduler_default” with the default driver
Creating dolphinscheduler-zookeeper … done
Creating dolphinscheduler-db … done
Creating dolphinscheduler-api … done
Creating dolphinscheduler-master … done
Creating dolphinscheduler-worker … done
Creating dolphinscheduler-alert … done

3. DolphinScheduler安装部署

DolphinScheduler支持单机部署和集群部署两种模式。学习交流加群风哥QQ113257174

步骤1:解压安装

# 解压安装包
$ cd /fgeudb
$ tar -zxvf /fgeudb/software/dolphinscheduler/apache-dolphinscheduler-3.2.1-bin.tar.gz
$ mv apache-dolphinscheduler-3.2.1-bin dolphinscheduler

# 查看目录结构
$ ls -la /fgeudb/dolphinscheduler/

输出示例如下:
total 32
drwxr-xr-x 2 root root 4096 Apr 4 10:00 bin
drwxr-xr-x 2 root root 4096 Apr 4 10:00 conf
drwxr-xr-x 2 root root 4096 Apr 4 10:00 lib
drwxr-xr-x 2 root root 4096 Apr 4 10:00 licenses
drwxr-xr-x 2 root root 4096 Apr 4 10:00 script
drwxr-xr-x 2 root root 4096 Apr 4 10:00 sql
drwxr-xr-x 2 root root 4096 Apr 4 10:00 tools

步骤2:创建数据库

# 登录MySQL
$ mysql -h 192.168.1.51 -u root -proot123

# 创建DolphinScheduler数据库
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 创建用户
mysql> CREATE USER ‘dolphin’@’%’ IDENTIFIED BY ‘dolphin123’;
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO ‘dolphin’@’%’;
mysql> FLUSH PRIVILEGES;

# 导入数据库脚本
$ mysql -h 192.168.1.51 -u dolphin -pdolphin123 dolphinscheduler < /fgeudb/dolphinscheduler/sql/dolphinscheduler_mysql.sql # 验证表创建 mysql> USE dolphinscheduler; mysql> SHOW TABLES; 输出示例如下: +---------------------------+ | Tables_in_dolphinscheduler| +---------------------------+ | t_ds_access_token | | t_ds_alert | | t_ds_alert_plugin_instance| | t_ds_command | | t_ds_datasource | | t_ds_environment | | t_ds_error_command | | t_ds_process_definition | | t_ds_process_instance | | t_ds_project | | t_ds_queue | | t_ds_resources | | t_ds_schedules | | t_ds_task_definition | | t_ds_task_instance | | t_ds_tenant | | t_ds_udf_func | | t_ds_user | | t_ds_version | +---------------------------+

步骤3:配置环境变量

# 配置环境变量
$ vi ~/.bash_profile

export DOLPHINSCHEDULER_HOME=/fgeudb/dolphinscheduler
export PATH=$DOLPHINSCHEDULER_HOME/bin:$PATH

# 使环境变量生效
$ source ~/.bash_profile

# 配置Java环境
$ vi /fgeudb/dolphinscheduler/conf/env/dolphinscheduler_env.sh

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/fgeudb/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
export HIVE_HOME=/fgeudb/hive
export PATH=$HIVE_HOME/bin:$PATH
export SPARK_HOME=/fgeudb/spark
export PATH=$SPARK_HOME/bin:$PATH
export FLINK_HOME=/fgeudb/flink
export PATH=$FLINK_HOME/bin:$PATH
export PYTHON_HOME=/usr/bin/python3
export PATH=$PYTHON_HOME:$PATH

步骤4:配置DolphinScheduler

# 编辑数据库配置
$ vi /fgeudb/dolphinscheduler/conf/datasource.properties

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.1.51:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=dolphin
spring.datasource.password=dolphin123

# 编辑Master配置
$ vi /fgeudb/dolphinscheduler/conf/master.properties

master.listen.port=5678
master.exec.threads=100
master.exec.task.num=20
master.dispatch.task.num=3
master.host.selector=lowerWeight
master.heartbeat.interval=10
master.task.commit.retryTimes=5
master.task.commit.interval=1000
master.max.cpuload.avg=-1
master.reserved.memory=0.3

# 编辑Worker配置
$ vi /fgeudb/dolphinscheduler/conf/worker.properties

worker.listen.port=1234
worker.exec.threads=100
worker.heartbeat.interval=10
worker.max.cpuload.avg=-1
worker.reserved.memory=0.3
worker.groups=default

# 编辑API Server配置
$ vi /fgeudb/dolphinscheduler/conf/api-server.properties

server.port=12345
spring.servlet.multipart.max-file-size=1024MB
spring.servlet.multipart.max-request-size=1024MB

步骤5:启动服务

# 创建日志目录
$ mkdir -p /fgeudb/dolphinscheduler/logs

# 启动所有服务
$ cd /fgeudb/dolphinscheduler
$ sh bin/dolphinscheduler-daemon.sh start master-server
$ sh bin/dolphinscheduler-daemon.sh start worker-server
$ sh bin/dolphinscheduler-daemon.sh start api-server
$ sh bin/dolphinscheduler-daemon.sh start alert-server

输出示例如下:
Start master-server starting…
Start master-server successfully!
Start worker-server starting…
Start worker-server successfully!
Start api-server starting…
Start api-server successfully!
Start alert-server starting…
Start alert-server successfully!

# 验证服务状态
$ jps

输出示例如下:
12345 MasterServer
12346 WorkerServer
12347 ApiApplicationServer
12348 AlertServer

# 检查端口
$ netstat -tlnp | grep -E “12345|5678|1234”

输出示例如下:
tcp 0 0 0.0.0.0:12345 0.0.0.0:* LISTEN 12347/java
tcp 0 0 0.0.0.0:5678 0.0.0.0:* LISTEN 12345/java
tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 12346/java

生产环境建议:建议部署多个Master和Worker实现高可用。Master和Worker可以部署在不同的服务器上,通过ZooKeeper进行协调。数据库建议使用主从复制确保数据安全。

4. DolphinScheduler配置详解

DolphinScheduler配置包括Master、Worker、API Server和Alert Server四个组件。风哥提示:正确配置各组件参数是系统稳定运行的关键。

Master配置说明

# master.properties核心配置

master.listen.port=5678 # Master监听端口
master.exec.threads=100 # Master执行线程数
master.exec.task.num=20 # 每个流程最大并行任务数
master.dispatch.task.num=3 # 每次分发的任务数
master.host.selector=lowerWeight # Worker选择策略
master.heartbeat.interval=10 # 心跳间隔(秒)
master.task.commit.retryTimes=5 # 任务提交重试次数
master.task.commit.interval=1000 # 任务提交间隔(毫秒)
master.max.cpuload.avg=-1 # 最大CPU负载(-1表示不限制)
master.reserved.memory=0.3 # 预留内存比例

Worker配置说明

# worker.properties核心配置

worker.listen.port=1234 # Worker监听端口
worker.exec.threads=100 # Worker执行线程数
worker.heartbeat.interval=10 # 心跳间隔(秒)
worker.max.cpuload.avg=-1 # 最大CPU负载
worker.reserved.memory=0.3 # 预留内存比例
worker.groups=default # Worker所属组(多个用逗号分隔)
worker.tenant.auto.create=true # 是否自动创建租户

ZooKeeper配置

# 编辑zookeeper.properties
$ vi /fgeudb/dolphinscheduler/conf/zookeeper.properties

zookeeper.quorum=192.168.1.51:2181,192.168.1.52:2181,192.168.1.53:2181
zookeeper.dolphinscheduler.root=/dolphinscheduler
zookeeper.session.timeout=60000
zookeeper.connection.timeout=30000
zookeeper.retry.sleep=1000
zookeeper.retry.maxtime=3

5. 项目创建与工作流配置

DolphinScheduler使用项目来组织工作流,每个项目可以包含多个工作流定义。更多学习教程公众号风哥教程itpux_com

步骤1:访问Web界面

# 访问DolphinScheduler Web界面
# URL: http://192.168.1.51:12345/dolphinscheduler

# 默认登录信息
用户名: admin
密码: dolphinscheduler123

# 首次登录后建议修改密码
# 点击右上角用户名 -> 修改密码

步骤2:创建项目

# 创建项目步骤:
# 1. 点击”项目管理” -> “创建项目”
# 2. 输入项目名称: fgedu_etl
# 3. 输入项目描述: ETL Workflow
# 4. 点击”确定”保存

# 项目管理功能:
# – 工作流定义:创建和管理DAG工作流
# – 工作流实例:查看工作流执行历史
# – 任务实例:查看任务执行详情
# – 资源文件:上传和管理资源文件
# – 数据源:配置数据库连接
# – UDF管理:管理用户自定义函数

步骤3:创建数据源

# 创建数据源步骤:
# 1. 进入项目 -> 数据源中心 -> 创建数据源
# 2. 选择数据源类型: MySQL
# 3. 配置连接信息:
数据源名称: fgedu_mysql
主机地址: 192.168.1.51
端口: 3306
用户名: root
密码: root123
数据库名: fgedu_db
# 4. 点击”测试连接”
# 5. 连接成功后点击”确定”保存

# 支持的数据源类型:
MySQL、PostgreSQL、Oracle、SQL Server
Hive、Spark、ClickHouse
Presto、H2、DB2

步骤4:创建工作流

# 创建工作流步骤:
# 1. 进入项目 -> 工作流定义 -> 创建工作流
# 2. 拖拽任务节点到画布
# 3. 配置任务参数
# 4. 连接任务节点形成DAG
# 5. 保存工作流

# 示例:创建ETL工作流
# 任务1: Shell任务 – 数据准备
任务名称: prepare_data
脚本内容:
#!/bin/bash
echo “开始准备数据…”
date +%Y%m%d > /tmp/data_date.txt
echo “数据准备完成”

# 任务2: SQL任务 – 数据清洗
任务名称: clean_data
数据源: fgedu_mysql
SQL类型: 非查询
SQL内容:
DELETE FROM orders WHERE status = ‘cancelled’;
UPDATE orders SET status = ‘completed’ WHERE update_time < DATE_SUB(NOW(), INTERVAL 30 DAY); # 任务3: Spark任务 - 数据分析 任务名称: spark_analysis Spark版本: SPARK2 主函数: com.fgedu.spark.OrderAnalysis 部署方式: cluster Spark参数: --executor-memory 4G --executor-cores 2 --num-executors 4 # 任务4: Python任务 - 生成报告 任务名称: generate_report 脚本内容: import pandas as pd import matplotlib.pyplot as plt # 读取数据并生成报告 df = pd.read_csv('/tmp/analysis_result.csv') df.plot(kind='bar') plt.savefig('/tmp/report.png') print("报告生成完成") # 连接任务形成DAG # prepare_data -> clean_data -> spark_analysis -> generate_report

步骤5:配置任务参数

# 全局参数配置
# 在工作流定义页面点击”全局参数”
参数名称: data_date
参数值: ${system.biz.date}
参数描述: 业务日期

# 任务参数传递
# 在任务中使用${data_date}引用全局参数

# 本地参数配置
# 在任务配置中添加本地参数
参数名称: input_path
参数值: /user/hadoop/data/${data_date}

# 内置参数说明:
${system.biz.date} # 业务日期(前一天)
${system.biz.curdate} # 当前日期
${system.datetime} # 当前时间戳

6. 定时调度配置

DolphinScheduler支持灵活的定时调度配置,支持cron表达式。from:www.itpux.com

步骤1:创建定时任务

# 创建定时任务步骤:
# 1. 进入工作流定义页面
# 2. 点击工作流右侧的”定时”按钮
# 3. 配置调度时间:
选择时区: Asia/Shanghai
失效方式: 无失效时间
Cron表达式: 0 0 2 * * ? # 每天凌晨2点执行
# 4. 配置时区
# 5. 点击”创建”保存

# Cron表达式说明:
秒 分 时 日 月 周 年
0 0 2 * * ? * # 每天凌晨2点
0 0 */2 * * ? * # 每2小时执行一次
0 30 9 * * MON-FRI # 周一到周五9:30执行
0 0 0 1 * ? * # 每月1号0点执行

步骤2:配置告警通知

# 配置告警组
# 1. 进入安全中心 -> 告警组管理 -> 创建告警组
告警组名称: etl_alert
组类型: 邮件
备注: ETL任务告警组

# 2. 配置告警实例
# 进入安全中心 -> 告警实例管理 -> 创建告警实例
实例名称: email_alert
插件类型: EMAIL
主机: smtp.fgedu.net.cn
端口: 25
发送者: dolphinscheduler@fgedu.net.cn
用户名: dolphinscheduler@fgedu.net.cn
密码: mail123

# 3. 在工作流中配置告警
# 工作流定义 -> 选择工作流 -> 点击”定时” -> 配置告警组

步骤3:补数功能

# 补数功能用于重新执行历史日期的任务

# 执行补数步骤:
# 1. 进入工作流定义页面
# 2. 点击工作流右侧的”补数”按钮
# 3. 选择补数时间范围:
开始时间: 2026-03-01
结束时间: 2026-03-31
# 4. 选择执行方式:
并行执行: 是
并行度: 5
# 5. 点击”确定”开始补数

# 补数场景:
# – 数据修复:修复历史数据问题
# – 新增任务:对历史数据重新执行新增的任务
# – 任务重跑:重新执行失败的历史任务

7. DolphinScheduler监控运维

DolphinScheduler提供完善的监控和管理功能。

步骤1:查看工作流实例

# 进入项目 -> 工作流实例
# 可以查看所有工作流执行记录

# 工作流状态说明:
等待依赖: WAIT_DEPEND
等待线程: WAIT_THREAD
成功: SUCCESS
失败: FAILURE
停止: STOP
暂停: PAUSE
运行中: RUNNING

# 查看工作流执行日志
# 点击工作流实例 -> 查看日志

输出示例如下:
[INFO] 2026-04-04 10:00:00.000 – Start process instance [fgedu_etl_daily]
[INFO] 2026-04-04 10:00:00.100 – Task [prepare_data] start
[INFO] 2026-04-04 10:00:05.000 – Task [prepare_data] success
[INFO] 2026-04-04 10:00:05.100 – Task [clean_data] start
[INFO] 2026-04-04 10:00:30.000 – Task [clean_data] success
[INFO] 2026-04-04 10:00:30.100 – Task [spark_analysis] start
[INFO] 2026-04-04 10:01:00.000 – Task [spark_analysis] success
[INFO] 2026-04-04 10:01:00.100 – Process instance [fgedu_etl_daily] success

步骤2:监控服务状态

# 进入监控中心 -> 服务管理
# 可以查看Master、Worker、ZooKeeper状态

# Master状态
主机: 192.168.1.51
端口: 5678
状态: 活跃
CPU使用率: 25%
内存使用率: 45%
进程数: 10

# Worker状态
主机: 192.168.1.51
端口: 1234
状态: 活跃
Worker组: default
CPU使用率: 30%
内存使用率: 50%
执行线程数: 5

# 查看服务日志
$ tail -f /fgeudb/dolphinscheduler/logs/dolphinscheduler-master.log
$ tail -f /fgeudb/dolphinscheduler/logs/dolphinscheduler-worker.log
$ tail -f /fgeudb/dolphinscheduler/logs/dolphinscheduler-api.log

步骤3:使用API管理

# 登录获取Token
$ curl -X POST “http://192.168.1.51:12345/dolphinscheduler/login” \
-H “Content-Type: application/x-www-form-urlencoded” \
-d “userName=admin&userPassword=dolphinscheduler123”

输出示例如下:
{“msg”:”success”,”code”:0,”data”:{“sessionId”:”abc123def456″}}

# 获取项目列表
$ curl -X GET “http://192.168.1.51:12345/dolphinscheduler/projects/list” \
-H “sessionId: abc123def456”

输出示例如下:
{“msg”:”success”,”code”:0,”data”:[{“id”:1,”name”:”fgedu_etl”,”description”:” ETL Workflow”}]}

# 执行工作流
$ curl -X POST “http://192.168.1.51:12345/dolphinscheduler/executors/start-process-instance” \
-H “sessionId: abc123def456” \
-H “Content-Type: application/x-www-form-urlencoded” \
-d “processDefinitionCode=123456789&projectCode=987654321”

输出示例如下:
{“msg”:”success”,”code”:0,”data”:1}

# 查询工作流状态
$ curl -X GET “http://192.168.1.51:12345/dolphinscheduler/executors/query-process-instance-by-id?processInstanceId=1” \
-H “sessionId: abc123def456”

输出示例如下:
{“msg”:”success”,”code”:0,”data”:{“id”:1,”name”:”fgedu_etl_daily”,”state”:”SUCCESS”,”startTime”:”2026-04-04 10:00:00″,”endTime”:”2026-04-04 10:01:00″}}

生产环境建议:部署多个Master和Worker实现高可用,配置负载均衡策略。定期备份数据库,确保数据安全。配置完善的监控告警,及时发现任务异常。对于关键任务,建议配置失败重试和通知机制。定期清理历史执行记录,避免数据库膨胀。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息