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

相关推荐
aiopencode1 分钟前
Flutter快学快用24讲--09 单元测试:Flutter 应用单元测试,提升代码质量
后端
调试人生的显微镜1 分钟前
Nativefier——可以把网页打包成exe的工具
后端
疯狂的程序猴1 分钟前
android studio 运行flutter报错
后端
duan8475 分钟前
CentOS 7 离线安装 Docker
后端
精神内耗中的钙奶饼干7 分钟前
Windows 系统上安装和使用 Apache Kafka记录
大数据·kafka
观无10 分钟前
基于AOP+Log4Net+AutoFac日志框架
java·大数据·数据库
AronTing10 分钟前
09-RocketMQ 深度解析:从原理到实战,构建可靠消息驱动微服务
后端·面试·架构
方块海绵12 分钟前
RabbitMQ总结
后端
星辰大海的精灵13 分钟前
Python 中利用算法优化性能的方法
后端·python
雷渊14 分钟前
深度分析Scroll API(滚动搜索)方案
后端