写点什么

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

作者:白鲸开源
  • 2025-05-28
    天津
  • 本文字数:1426 字

    阅读完需:约 5 分钟

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

存储系统概述

Apache DolphinScheduler 的存储系统提供统一接口,支持跨多种存储后端(如本地文件系统、云存储)进行文件存取。其核心功能是管理工作流和任务所需的资源文件(如脚本、JAR 包、配置文件),并通过抽象底层存储技术,实现无缝切换存储方案而无需修改应用代码。

架构设计

存储系统采用插件化架构,通过标准化 API 屏蔽不同存储实现的差异,确保资源操作的统一性。以下是核心架构模型:


支持的存储类型

插件架构实现

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


配置与部署

配置文件路径:dolphinscheduler-common/src/main/resources/common.properties

基础配置

common.properties 中定义存储类型及基础路径:


# 存储类型:LOCAL, HDFS, S3, OSS, GCS, ABS, OBS, COS  resource.storage.type=LOCAL  # 资源存储基础路径  resource.storage.upload.base.path=/tmp/dolphinscheduler  
复制代码
配置加载流程

DolphinScheduler 启动时按以下逻辑初始化存储操作器:


存储类型配置示例

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 和桶名称。

资源数据库表结构

除了实际文件存储,DolphinScheduler 还会在数据库中维护资源的元数据。相关数据库表包括:


  • 资源元数据表:存储资源相关信息(如名称、路径、所有者等)。

  • 资源-用户关系表:定义资源访问权限。

组件间集成关系

存储系统通过以下方式与 DolphinScheduler 其他模块交互:


存储类型选型建议

核心考量因素

配置最佳实践

  1. 配置一致性

  2. 确保所有 DolphinScheduler 节点(API Server 和 Worker)的 common.properties 中存储配置完全一致,避免因配置差异导致资源路径错误。

  3. 权限管理

  4. 运行 DolphinScheduler 的系统用户需有存储后端的读写权限(如 HDFS 用户、S3 Bucket 策略)。

  5. 云存储建议使用最小权限原则(如仅允许特定目录的操作)。

  6. 共享存储

  7. 分布式部署时,必须使用共享存储(如 HDFSS3),禁止使用 LOCAL,否则不同节点无法访问同一资源。

  8. 安全性

  9. 敏感信息(如 S3 密钥)通过加密配置或环境变量传递,避免明文写入文件。

  10. 定期轮换云存储访问密钥。

  11. 备份策略

  12. 对关键资源(如生产环境脚本)启用版本控制或定期快照。

  13. 结合存储后端特性实现自动备份(如 S3 版本控制、HDFS 快照)。


本文为 AI 生成,仅供参考,如需具体配置示例或进一步技术细节,可参考官方文档对应章节。

用户头像

白鲸开源

关注

一家开源原生的DataOps商业公司。 2022-03-18 加入

致力于打造下一代开源原生的DataOps 平台,助力企业在大数据和云时代,智能化地完成多数据源、多云及信创环境的数据集成、调度开发和治理,以提高企业解决数据问题的效率,提升企业分析洞察能力和决策能力。

评论

发布
暂无评论
Apache DolphinScheduler存储系统详解| AI生成技术文档系列_大数据_白鲸开源_InfoQ写作社区