Apache DolphinScheduler 存储系统详解| AI 生成技术文档系列

存储系统概述
Apache DolphinScheduler 的存储系统提供统一接口,支持跨多种存储后端(如本地文件系统、云存储)进行文件存取。其核心功能是管理工作流和任务所需的资源文件(如脚本、JAR 包、配置文件),并通过抽象底层存储技术,实现无缝切换存储方案而无需修改应用代码。
架构设计
存储系统采用插件化架构,通过标准化 API 屏蔽不同存储实现的差异,确保资源操作的统一性。以下是核心架构模型:

支持的存储类型
插件架构实现
存储功能通过插件化设计实现,让用户可以轻松进行拓展和维护。

配置与部署
配置文件路径:dolphinscheduler-common/src/main/resources/common.properties
。
基础配置
在 common.properties
中定义存储类型及基础路径:
配置加载流程
DolphinScheduler 启动时按以下逻辑初始化存储操作器:

存储类型配置示例
1. 本地存储(LOCAL)
注意:多节点部署时,需使用共享存储(如 NFS)确保文件一致性。
2. HDFS 存储
Kerberos 认证扩展配置:
3. 亚马逊 S3 存储
aws.yaml
中配置 S3 连接参数:
4. 其他云存储
阿里云 OSS:配置
resource.storage.type=OSS
,需指定oss.endpoint
和访问密钥。华为云 OBS:配置
resource.storage.type=OBS
,需设置obs.endpoint
及区域信息。腾讯云 COS:配置
resource.storage.type=COS
,需定义cos.region
和桶名称。
资源数据库表结构
除了实际文件存储,DolphinScheduler 还会在数据库中维护资源的元数据。相关数据库表包括:
资源元数据表:存储资源相关信息(如名称、路径、所有者等)。
资源-用户关系表:定义资源访问权限。
组件间集成关系
存储系统通过以下方式与 DolphinScheduler 其他模块交互:

存储类型选型建议
核心考量因素
配置最佳实践
配置一致性
确保所有 DolphinScheduler 节点(API Server 和 Worker)的
common.properties
中存储配置完全一致,避免因配置差异导致资源路径错误。权限管理
运行 DolphinScheduler 的系统用户需有存储后端的读写权限(如 HDFS 用户、S3 Bucket 策略)。
云存储建议使用最小权限原则(如仅允许特定目录的操作)。
共享存储
分布式部署时,必须使用共享存储(如
HDFS
、S3
),禁止使用LOCAL
,否则不同节点无法访问同一资源。安全性
敏感信息(如 S3 密钥)通过加密配置或环境变量传递,避免明文写入文件。
定期轮换云存储访问密钥。
备份策略
对关键资源(如生产环境脚本)启用版本控制或定期快照。
结合存储后端特性实现自动备份(如 S3 版本控制、HDFS 快照)。
本文为 AI 生成,仅供参考,如需具体配置示例或进一步技术细节,可参考官方文档对应章节。
评论