当前位置: 首页 > news >正文

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

存储系统概述

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

架构设计

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

1

支持的存储类型
存储类型描述使用场景
LOCAL服务器本地文件系统开发测试、单节点部署
HDFSHadoop分布式文件系统基于Hadoop生态的生产环境
S3亚马逊S3或兼容S3协议的存储AWS云环境或S3兼容存储
OSS阿里云对象存储服务阿里云部署环境
GCS谷歌云存储Google Cloud Platform部署
ABSAzure Blob存储Microsoft Azure云环境
OBS华为云对象存储服务华为云部署
COS腾讯云对象存储腾讯云部署
插件架构实现

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

2

配置与部署

配置文件路径: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 启动时按以下逻辑初始化存储操作器:

4

存储类型配置示例
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 其他模块交互:

5

存储类型选型建议

核心考量因素
因素说明
单节点 vs 多节点单节点部署可用 LOCAL;多节点需用 HDFS 或云存储(如S3、OSS)。
性能LOCAL 性能最佳但无分布式能力;HDFS 适合本地集群;云存储适合云环境。
可靠性云存储提供高持久性;本地 HDFS 需配置副本策略(如3副本)。
集成成本已有 Hadoop 集群或云环境时,优先选择对应存储方案以减少适配成本。
费用云存储按存储量、请求次数计费;本地存储需硬件和维护成本。
配置最佳实践
  1. 配置一致性
    确保所有 DolphinScheduler 节点(API Server 和 Worker)的 common.properties 中存储配置完全一致,避免因配置差异导致资源路径错误。

  2. 权限管理

    • 运行 DolphinScheduler 的系统用户需有存储后端的读写权限(如HDFS用户、S3 Bucket策略)。
    • 云存储建议使用最小权限原则(如仅允许特定目录的操作)。
  3. 共享存储
    分布式部署时,必须使用共享存储(如 HDFSS3),禁止使用 LOCAL,否则不同节点无法访问同一资源。

  4. 安全性

    • 敏感信息(如S3密钥)通过加密配置或环境变量传递,避免明文写入文件。
    • 定期轮换云存储访问密钥。
  5. 备份策略

    • 对关键资源(如生产环境脚本)启用版本控制或定期快照。
    • 结合存储后端特性实现自动备份(如S3版本控制、HDFS快照)。

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

http://www.xdnf.cn/news/667927.html

相关文章:

  • Vue3进阶教程:1.初次了解vue
  • Mobaxterm解锁Docker
  • Docker Desktop for Windows 系统设置说明文档
  • DBCP连接池的使用方法和源码分析
  • PCB布局/走线
  • 2025年上半年第2批信息系统项目管理师论文真题解析与范文
  • 深入理解Java中的BigDecimal:高精度计算的核心工具
  • 第二批考更有利?软考高项两个批次考试难度对比分析!
  • 银河麒麟V10×R²AIN SUITE:用AI重构安全,以国产化生态定义智能未来
  • Ansible 配置Playbook文件格式、关键字和语法详解
  • 每日Prompt:古花卷
  • 探究Azure devops 流水线缓存
  • 详解MYSQL索引失效问题排查
  • 关于 Web 安全:6. 常见 CMS 开源系统风险点
  • 利用 `ngx_http_xslt_module` 实现 NGINX 的 XML → HTML 转换
  • 深度学习常用概念详解:从生活理解到技术原理
  • 新电脑配置五 jdk8,maven,idea,vscode
  • 单片机(MCU)的 IO 口静电、浪涌、电压异常等保护
  • OpenEuler-DNS多域服务器搭建
  • 基于 Node.js 的 Express 服务是什么?
  • div或button一些好看实用的 CSS 样式示例
  • Linux 下 C 语言实现工厂模式
  • 卓力达蚀刻工艺:精密制造的跨行业赋能者
  • day 33 python打卡
  • 【LeetCode 热题 100】打家劫舍 / 零钱兑换 / 单词拆分 / 乘积最大子数组 / 最长有效括号
  • DAY38打卡
  • Python打卡第38天
  • 零基础远程连接课题组Linux服务器,安装anaconda,配置python环境(换源),在服务器上运行python代码【2/3 适合小白,步骤详细!!!】
  • K8S Pod调度方法实例
  • 详解K8s API Server 如何处理请求的?