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实时任务 - 海豚调度 - 博客园

相关推荐
豌豆花下猫5 小时前
uv全功能更新:统一管理Python项目、工具、脚本和环境的终极解决方案
后端·python·ai
深度物联网6 小时前
Spring Boot多模块划分设计
java·spring boot·后端
YUELEI1187 小时前
spring cloud 与 cloud alibaba 版本对照表
后端·spring·spring cloud
杨不易呀9 小时前
Java面试:微服务与大数据场景下的技术挑战
java·大数据·微服务·面试·技术栈
小杜-coding10 小时前
黑马点评day02(缓存)
java·spring boot·redis·后端·spring·maven·mybatis
程序员小刚12 小时前
基于SpringBoot + Vue 的火车票订票系统
vue.js·spring boot·后端
feng9952012 小时前
从巴别塔到通天塔:Manus AI 如何重构多语言手写识别的智能版图
大数据·人工智能·机器学习
fanTuanye13 小时前
【SpringBoot篇】详解短信验证码登录功能实现
spring boot·后端
DonciSacer13 小时前
第一章-Rust入门
开发语言·后端·rust
c无序13 小时前
深入探索 Apache Spark:从初识到集群运行原理
大数据·spark·apache