ubuntu安装DolphinScheduler

ubuntu安装DolphinScheduler

前言

DolphinScheduler是一款开源的 分布式大数据工作流调度系统 ,核心功能是帮助用户高效管理复杂的数据处理流程。它通过可视化界面实现任务的编排、调度、监控和运维,支持多租户资源隔离,适用于数据同步、ETL、机器学习、周期性报表生成等场景,尤其擅长解决任务依赖复杂、资源分配不均等问题。

选它的理由

  1. 低代码可视化设计提供拖拽式界面,用户无需编码即可设计复杂的工作流,降低技术门槛,提升开发效率。
  2. 高可用与弹性扩展 采用去中心化的 Master-Worker 架构,支持动态扩缩容,单点故障不影响整体系统运行。
  3. 资源隔离与多租户支持按项目/队列分配资源,结合用户权限控制,避免任务抢占资源,适合多团队协作环境。
  4. 灵活的任务类型 兼容 ShellPythonSparkFlinkHive 等数十种任务类型,并支持自定义插件扩展。
  5. 容错与告警机制任务失败自动重试、指定节点恢复,同时集成邮件、钉钉、企业微信等告警通知。

优缺点

优点

  • 易用性:图形化界面降低操作难度,适合运维与开发协同使用。
  • 稳定性:分布式架构保障高可用,任务级容错设计减少人工干预。
  • 生态兼容性 :无缝对接 HadoopKubernetes、云平台及主流大数据组件。

缺点

  • 学习成本:高阶功能(如自定义插件、复杂参数传递)需一定学习时间。
  • 社区成熟度 :相比 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;

设置环境变量

usernamepassword 改成你在上一步中设置的用户名 {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 | 文档中心

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

任务调度器-DolphinScheduler配置告警_dolphinscheduler 告警-CSDN博客

详细教程 | 如何使用DolphinScheduler调度Flink实时任务 - 海豚调度 - 博客园

相关推荐
我是一颗柠檬3 分钟前
【MySQL全面教学】MySQL性能优化实战Day13(2026年)
数据库·后端·sql·mysql·性能优化·database
小江的记录本28 分钟前
【JVM虚拟机】JVM调优:常用JVM参数、调优核心指标、OOM排查、GC日志分析、Arthas工具使用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
程序员cxuan40 分钟前
我花了两天时间,终于把 Codex 额度掉太快的问题整明白了!!
人工智能·后端·程序员
IT_陈寒41 分钟前
Vue这个动态响应坑把我整不会了
前端·人工智能·后端
金銀銅鐵41 分钟前
[Java] 用图形化界面演示 iadd, isub, iconst_<i> 指令的效果
java·后端·python
程序鉴定师1 小时前
上海小程序开发的坚实保障与行业优势解析
大数据·小程序
AskHarries1 小时前
做国内还是出海
后端
日月云棠1 小时前
10 Integer —— 最常用的整数包装类深度解析
java·后端
大鸡腿同学1 小时前
大模型为何总 “胡说八道”?做完 RAG 知识库,我看懂了它的底层逻辑
后端
Elastic 中国社区官方博客1 小时前
我们如何在 Elasticsearch Serverless 上将向量搜索吞吐量提升一倍
大数据·数据库·人工智能·elasticsearch·搜索引擎·云原生·serverless