ubuntu安装DolphinScheduler

前言
DolphinScheduler
是一款开源的 分布式大数据工作流调度系统 ,核心功能是帮助用户高效管理复杂的数据处理流程。它通过可视化界面实现任务的编排、调度、监控和运维,支持多租户资源隔离,适用于数据同步、ETL
、机器学习、周期性报表生成等场景,尤其擅长解决任务依赖复杂、资源分配不均等问题。
选它的理由
- 低代码可视化设计提供拖拽式界面,用户无需编码即可设计复杂的工作流,降低技术门槛,提升开发效率。
- 高可用与弹性扩展 采用去中心化的
Master-Worker
架构,支持动态扩缩容,单点故障不影响整体系统运行。 - 资源隔离与多租户支持按项目/队列分配资源,结合用户权限控制,避免任务抢占资源,适合多团队协作环境。
- 灵活的任务类型 兼容
Shell
、Python
、Spark
、Flink
、Hive
等数十种任务类型,并支持自定义插件扩展。 - 容错与告警机制任务失败自动重试、指定节点恢复,同时集成邮件、钉钉、企业微信等告警通知。
优缺点
优点
- 易用性:图形化界面降低操作难度,适合运维与开发协同使用。
- 稳定性:分布式架构保障高可用,任务级容错设计减少人工干预。
- 生态兼容性 :无缝对接
Hadoop
、Kubernetes
、云平台及主流大数据组件。
缺点
- 学习成本:高阶功能(如自定义插件、复杂参数传递)需一定学习时间。
- 社区成熟度 :相比
Airflow
,国际社区活跃度略低,企业级支持依赖商业化版本。 - 资源消耗:分布式部署需一定硬件资源,小规模场景可能"杀鸡用牛刀"。
与 Airflow、Nifi 的对比
维度 | DolphinScheduler | Apache Airflow | Apache Nifi |
---|---|---|---|
核心定位 | 批量任务调度与工作流编排 | 基于代码的任务调度与管道管理 | 实时数据流处理与分发 |
使用方式 | 可视化拖拽 + 少量配置 | 通过 Python 代码定义 DAG | 可视化数据流设计(基于 Processor 组件) |
适用场景 | 周期性批处理、ETL、依赖复杂任务 | 开发友好型调度、CI/CD 集成 | 实时数据摄取、转换、路由 |
资源管理 | 内置多租户资源队列,支持动态分配 | 依赖外部系统(如 K8s、Celery) | 无原生资源隔离,需结合外部方案 |
优势 | 开箱即用的企业级功能,易维护 | 灵活度高,社区强大,扩展性强 | 低延迟流处理,数据溯源能力强 |
劣势 | 自定义开发需适配插件体系 | 非技术用户学习曲线陡峭 | 不适合批处理调度,资源消耗较高 |
DolphinScheduler
是 企业级大数据调度场景的优选工具 ,尤其适合需要快速构建可视化任务流、强调资源隔离与稳定性的团队。与 Airflow
相比,DS
对非开发者更友好;与 Nifi
相比,DS
更专注于批量任务调度而非实时流(DS
通过Flink
也能实现实时流)。选择时需结合团队技术栈、任务类型(批处理还是流处理)及运维成本综合考量。

安装
bash
cd /opt/dolphin
# 下载
wget https://dlcdn.apache.org/dolphinscheduler/3.2.2/apache-dolphinscheduler-3.2.2-bin.tar.gz
# 解压
tar -xvzf apache-dolphinscheduler-3.2.2-bin.tar.gz
# 授权
chmod -R 755 apache-dolphinscheduler-3.2.2-bin
cd apache-dolphinscheduler-3.2.2-bin
# 启动
bash /opt/dolphin/apache-dolphinscheduler-3.2.2-bin/bin/dolphinscheduler-daemon.sh start standalone-server
启停命令
bash
# 启动 Standalone Server 服务
bash /opt/dolphin/apache-dolphinscheduler-3.2.2-bin/bin/dolphinscheduler-daemon.sh start standalone-server
# 停止 Standalone Server 服务
bash /opt/dolphin/apache-dolphinscheduler-3.2.2-bin/bin/dolphinscheduler-daemon.sh stop standalone-server
# 查看 Standalone Server 状态
bash /opt/dolphin/apache-dolphinscheduler-3.2.2-bin/bin/dolphinscheduler-daemon.sh status standalone-server
访问 web ui
启动时间有点长,耐心等待一下。默认的用户名和密码是 admin/dolphinscheduler123
http://localhost:12345/dolphinscheduler/ui

H2切换MySQL
DolphinScheduler
默认使用 H2
数据库,这样每次重启服务后数据会丢失,所以需要切换到 MySQL
数据库。
首先将下载的 MySQL
驱动 jar
包复制到以下几个目录下:
bash
api-server/libs
alert-server/libs
master-server/libs
worker-server/libs
tools/libs
standalone-server/libs/standalone-server/
初始化数据库
如下是 MySQL 5.6 / 5.7
版本的初始化命令
bash
mysql -uroot -p
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 修改 {user} 和 {password} 为你希望的用户名和密码
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphin'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphin'@'localhost' IDENTIFIED BY '123456';
mysql> flush privileges;
如下是 MySQL 8.0
版本的初始化命令
bash
mysql -uroot -p
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 修改 {user} 和 {password} 为你希望的用户名和密码
mysql> CREATE USER 'dolphin'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphin'@'%';
mysql> CREATE USER 'dolphin'@'localhost' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphin'@'localhost';
mysql> FLUSH PRIVILEGES;
设置环境变量
将 username
和 password
改成你在上一步中设置的用户名 {user}
和密码 {password}
bash
vim ~/.bashrc
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai"
export SPRING_DATASOURCE_USERNAME=dolphin
export SPRING_DATASOURCE_PASSWORD=123456
source ~/.bashrc
或者不配置环境变量(推荐),直接修改 /opt/dolphin/apache-dolphinscheduler-3.2.2-bin/standalone-server/conf/application.yaml
文件
yaml
spring:
profiles:
#active: h2
active: mysql
spring:
config:
activate:
on-profile: mysql
sql:
init:
schema-locations: classpath:sql/dolphinscheduler_mysql.sql
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
#username: root
#password: root
username: dolphin
password: 123456
执行初始化脚本
bash
bash tools/bin/upgrade-schema.sh
DataX
环境变量


bash
# java
JAVA_HOME=/usr/local/jdk1.8/
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOMR/lib
export PATH
#export JAVA_HOME JRE_HOME PATH CLASS_PATH
# python
export PYTHON_LAUNCHER=/opt/Anaconda3/bin/python3
#export PYTHON_HOME=/opt/Anaconda3/bin/python3
# datax
export DATAX_LAUNCHER=/opt/datax/datax/bin/datax.py
#export DATAX_HOME=/opt/datax/datax/bin/datax.py#
选择环境
新建项目-》工作流定义-》创建工作流-》进入工作流

数据集成-》选择DATAX节点

在环境名称一栏选择上文创建的环境变量

参考
DolphinScheduler 数据源配置 docs/docs/zh/guide/howto/datasource-setting.md · DolphinScheduler/DolphinScheduler - 码云 - 开源中国