Apache DolphinScheduler 数据源配置完全指南

Apache DolphinScheduler 数据源配置完全指南

dolphinscheduler Dolphinscheduler是一个分布式调度系统,主要用于任务调度和流程编排。它的特点是易用性高、可扩展性强、性能稳定等。适用于任务调度和流程自动化场景。 dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/dol/dolphinscheduler

前言

Apache DolphinScheduler 作为一款分布式易扩展的可视化工作流任务调度系统,其数据源配置是系统运行的基础。本文将全面介绍 DolphinScheduler 的数据源配置方法,包括元数据库设置和数据源中心配置,帮助用户根据实际需求灵活配置各类数据源。

元数据库配置

元数据库概述

元数据库是 DolphinScheduler 存储工作流定义、任务实例、用户权限等元数据的核心数据库。系统支持 MySQL 和 PostgreSQL 两种主流关系型数据库作为元数据库。

Standalone 模式切换元数据库

对于 Standalone 模式的用户,可以按照以下步骤将默认的 H2 数据库切换为 MySQL:

  1. 准备数据库驱动

    • 下载 mysql-connector-java 驱动(建议 8.0.16 版本)
    • 将驱动放置到 standalone-server/libs/standalone-server/ 目录下
  2. 配置环境变量

    export DATABASE=mysql
    export SPRING_PROFILES_ACTIVE=${DATABASE}
    export SPRING_DATASOURCE_URL="jdbc:mysql://{address}/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
    export SPRING_DATASOURCE_USERNAME={user}
    export SPRING_DATASOURCE_PASSWORD={password}
    

    替换 {address}, {user}{password} 为实际的数据库连接信息

  3. 启动服务

    • 启动 standalone-server 后,系统将自动使用 MySQL 作为元数据库
    • 数据将持久化存储在 MySQL 中,重启不会丢失

分布式安装初始化数据库

MySQL 数据库初始化

根据 MySQL 版本不同,初始化方式略有差异:

MySQL 5.6/5.7

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

-- 替换 {user} 和 {password} 为实际值
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';

FLUSH PRIVILEGES;

MySQL 8.0+

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

-- 替换 {user} 和 {password} 为实际值
CREATE USER '{user}'@'%' IDENTIFIED BY '{password}';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%';
CREATE USER '{user}'@'localhost' IDENTIFIED BY '{password}';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost';
FLUSH PRIVILEGES;
PostgreSQL 数据库初始化
CREATE DATABASE dolphinscheduler;
-- 替换 {user} 和 {password} 为实际值
CREATE USER {user} PASSWORD '{password}';
ALTER DATABASE dolphinscheduler OWNER TO {user};

配置访问权限:

echo "host    dolphinscheduler   {user}    {ip}     md5" >> $PGDATA/pg_hba.conf
pg_ctl reload
环境变量配置

根据数据库类型配置相应环境变量:

MySQL

export 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"
export SPRING_DATASOURCE_USERNAME={user}
export SPRING_DATASOURCE_PASSWORD={password}

PostgreSQL

export DATABASE=postgresql
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler"
export SPRING_DATASOURCE_USERNAME={user}
export SPRING_DATASOURCE_PASSWORD={password}
初始化数据库结构

执行以下命令初始化数据库表结构:

bash tools/bin/upgrade-schema.sh

数据源中心配置

支持的数据源类型

DolphinScheduler 数据源中心支持多种数据源类型:

  • 关系型数据库:MySQL、PostgreSQL、Oracle、SQL Server
  • 大数据生态:Hive/Impala、Spark
  • 分析型数据库:ClickHouse

基本配置步骤

  1. 进入"数据源中心"界面
  2. 点击"创建数据源"按钮
  3. 选择数据源类型并填写连接信息
  4. 点击"测试连接"验证配置正确性
  5. 测试通过后保存数据源

特殊数据源配置说明

对于部分与 Apache LICENSE V2 不兼容的数据源(如 MySQL、Oracle、SQL Server 等),需要手动配置 JDBC 驱动:

  1. 下载对应驱动

    • 从官方仓库获取对应版本的 JDBC 驱动
  2. 部署驱动文件

    • 将驱动文件放置到 api-server/libsworker-server/libs 目录下
  3. 重启服务

    • 重启 api-server 和 worker-server 服务使配置生效

注意:如果使用 MySQL 作为元数据库,必须使用 8.0.16 及以上版本的驱动

最佳实践建议

  1. 生产环境推荐

    • 生产环境建议使用 PostgreSQL 或 MySQL 作为元数据库
    • 避免使用 Standalone 模式下的默认 H2 数据库
  2. 性能优化

    • 为元数据库配置适当的连接池参数
    • 定期维护数据库(如索引优化、统计信息更新等)
  3. 安全建议

    • 为元数据库配置专用账号并限制权限
    • 启用数据库连接加密(如 SSL/TLS)
    • 定期备份元数据
  4. 版本兼容性

    • 升级前检查数据库驱动版本兼容性
    • 测试环境验证后再应用到生产环境

常见问题排查

  1. 连接测试失败

    • 检查网络连通性
    • 验证账号权限
    • 确认驱动版本兼容性
  2. 驱动加载问题

    • 确认驱动文件放置位置正确
    • 检查文件权限
    • 查看服务启动日志中的驱动加载信息
  3. 性能问题

    • 监控数据库性能指标
    • 优化慢查询
    • 考虑增加连接池大小

通过本文的详细指导,用户应该能够顺利完成 DolphinScheduler 的各种数据源配置工作,为后续的工作流调度和管理奠定坚实基础。

dolphinscheduler Dolphinscheduler是一个分布式调度系统,主要用于任务调度和流程编排。它的特点是易用性高、可扩展性强、性能稳定等。适用于任务调度和流程自动化场景。 dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/dol/dolphinscheduler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

Apache DolphinScheduler是一个新一代分布式大数据工作流任务调度系统,致力于“解决大数据任务之间错综复杂的依赖关系,整个数据处理开箱即用”。它以 DAG(有向无环图) 的方式将任务连接起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及 Kill任务等操作。目前已经有像IBM、腾讯、美团、360等400多家公司生产上使用。 调度系统现在市面上的调度系统那么多,比如老牌的Airflow, Oozie,Kettle,xxl-job ,Spring Batch等等, 为什么要选DolphinSchedulerDolphinScheduler 的定位是大数据工作流调度。通过把大数据工作流做了重点标注. 从而可以知道DolphinScheduler的定位是针对于大数据体系。DolphinScheduler 发展很快 很多公司调度都切换到了DolphinScheduler,掌握DolphinScheduler调度使用势在必行,抓住新技术机遇,为跳巢涨薪做好准备。 优秀的框架都是有大师级别的人写出来的,包含了很多设计思想技术。DolphinScheduler也不例外,它是一个非常优秀的框架,用到很多技术设计思想,本课程会带大家深入DolphinScheduler框架源码,包括设计的思想技术都会讲解,DolphinScheduler源码很多,会按照模块进行讲解,学习完课程后,不仅可以熟悉DolphinScheduler使用,而且可以掌握很多优秀的设计思想技术,给自己的技术带来很大提升,为跳巢涨薪做好准备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔如黎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值