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

3
支持的存储类型
| LOCAL | ||
| HDFS | ||
| S3 | ||
| OSS | ||
| GCS | ||
| ABS | ||
| OBS | ||
| COS |
4
插件架构实现
4
插件架构实现
存储功能通过插件化设计实现,让用户可以轻松进行拓展和维护。

5
配置与部署
配置文件路径:dolphinscheduler-common/src/main/resources/common.properties
。
6
基础配置
6
基础配置
在 common.properties
中定义存储类型及基础路径:
# 存储类型:LOCAL, HDFS, S3, OSS, GCS, ABS, OBS, COS
resource.storage.type=LOCAL
# 资源存储基础路径
resource.storage.upload.base.path=/tmp/dolphinscheduler
7
配置加载流程
7
配置加载流程
DolphinScheduler 启动时按以下逻辑初始化存储操作器:

8
存储类型配置示例
1. 本地存储(LOCAL)
resource.storage.type=LOCAL
resource.storage.upload.base.path=/data/dolphinscheduler
注意:多节点部署时,需使用共享存储(如NFS)确保文件一致性。
2. HDFS存储
resource.storage.type=HDFS
# HDFS地址
resource.hdfs.fs.defaultFS=hdfs://namenode:8020
# HDFS用户
resource.hdfs.root.user=hdfs
Kerberos认证扩展配置:
resource.hdfs.kerberos.enable=true
resource.hdfs.kerberos.principal=hdfs@EXAMPLE.COM
resource.hdfs.kerberos.keytab=/etc/security/keytabs/hdfs.keytab
3. 亚马逊S3存储
resource.storage.type=S3
aws.yaml
中配置S3连接参数:
aws:
s3:
credentials.provider.type: AWSStaticCredentialsProvider
access.key.id: <access-key>
access.key.secret: <secret-key>
region: us-east-1
bucket.name: dolphinscheduler
endpoint: s3.amazonaws.com
4. 其他云存储
- 阿里云OSS:配置resource.storage.type=OSS,需指定oss.endpoint和访问密钥。
- 华为云OBS:配置resource.storage.type=OBS,需设置obs.endpoint及区域信息。
- 腾讯云COS:配置resource.storage.type=COS,需定义cos.region和桶名称。
9
资源数据库表结构
9
资源数据库表结构
除了实际文件存储,DolphinScheduler 还会在数据库中维护资源的元数据。相关数据库表包括:
资源元数据表:存储资源相关信息(如名称、路径、所有者等)。 资源-用户关系表:定义资源访问权限。
10
组件间集成关系
10
组件间集成关系
存储系统通过以下方式与 DolphinScheduler 其他模块交互:

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

用户案例
迁移实战
发版消息
加入社区
关注社区的方式有很多:
GitHub: https://github.com/apache/dolphinscheduler 官网:https://dolphinscheduler.apache.org/en-us 订阅开发者邮件:dev@dolphinscheduler@apache.org X.com:@DolphinSchedule YouTube:https://www.youtube.com/@apachedolphinscheduler Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg
同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。
📂非代码方式包括:
完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。
👩💻代码方式包括:
查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。


你的好友秀秀子拍了拍你
并请你帮她点一下“分享”






