Apache DolphinScheduler 数据源配置完全指南
前言
Apache DolphinScheduler 作为一款分布式易扩展的可视化工作流任务调度系统,其数据源配置是系统运行的基础。本文将全面介绍 DolphinScheduler 的数据源配置方法,包括元数据库设置和数据源中心配置,帮助用户根据实际需求灵活配置各类数据源。
元数据库配置
元数据库概述
元数据库是 DolphinScheduler 存储工作流定义、任务实例、用户权限等元数据的核心数据库。系统支持 MySQL 和 PostgreSQL 两种主流关系型数据库作为元数据库。
Standalone 模式切换元数据库
对于 Standalone 模式的用户,可以按照以下步骤将默认的 H2 数据库切换为 MySQL:
-
准备数据库驱动:
- 下载 mysql-connector-java 驱动(建议 8.0.16 版本)
- 将驱动放置到
standalone-server/libs/standalone-server/
目录下
-
配置环境变量:
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}
为实际的数据库连接信息 -
启动服务:
- 启动 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
基本配置步骤
- 进入"数据源中心"界面
- 点击"创建数据源"按钮
- 选择数据源类型并填写连接信息
- 点击"测试连接"验证配置正确性
- 测试通过后保存数据源
特殊数据源配置说明
对于部分与 Apache LICENSE V2 不兼容的数据源(如 MySQL、Oracle、SQL Server 等),需要手动配置 JDBC 驱动:
-
下载对应驱动:
- 从官方仓库获取对应版本的 JDBC 驱动
-
部署驱动文件:
- 将驱动文件放置到
api-server/libs
和worker-server/libs
目录下
- 将驱动文件放置到
-
重启服务:
- 重启 api-server 和 worker-server 服务使配置生效
注意:如果使用 MySQL 作为元数据库,必须使用 8.0.16 及以上版本的驱动
最佳实践建议
-
生产环境推荐:
- 生产环境建议使用 PostgreSQL 或 MySQL 作为元数据库
- 避免使用 Standalone 模式下的默认 H2 数据库
-
性能优化:
- 为元数据库配置适当的连接池参数
- 定期维护数据库(如索引优化、统计信息更新等)
-
安全建议:
- 为元数据库配置专用账号并限制权限
- 启用数据库连接加密(如 SSL/TLS)
- 定期备份元数据
-
版本兼容性:
- 升级前检查数据库驱动版本兼容性
- 测试环境验证后再应用到生产环境
常见问题排查
-
连接测试失败:
- 检查网络连通性
- 验证账号权限
- 确认驱动版本兼容性
-
驱动加载问题:
- 确认驱动文件放置位置正确
- 检查文件权限
- 查看服务启动日志中的驱动加载信息
-
性能问题:
- 监控数据库性能指标
- 优化慢查询
- 考虑增加连接池大小
通过本文的详细指导,用户应该能够顺利完成 DolphinScheduler 的各种数据源配置工作,为后续的工作流调度和管理奠定坚实基础。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考