
Apache DolphinScheduler 资源中心存储配置指南本地文件系统与 S3/OSS/OBS/COS 云存储接入【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinschedulerApache DolphinScheduler 的「资源中心Resource Center」承担着上传、管理 Shell/SQL/Spark 等任务所需文本文件与依赖文件的核心职责其底层存储既可以使用本地文件系统也可以对接 Hadoop HDFS、MinIO、AWS S3、阿里云 OSS、华为云 OBS、腾讯云 COS 等分布式或云存储产品。本文以官方资源配置文档docs/docs/en/guide/resource/configuration.md为骨架结合当前仓库的默认配置与存储插件源码完整讲解 LOCAL 本地存储与 S3/OSS/OBS/COS 四种云存储的接入方式、所需修改的配置项及其注意事项帮助你在 Standalone、Pseudo-Cluster 与 Cluster 三种部署形态下正确落地资源中心存储方案。资源中心支持哪些存储后端资源中心用于两类用途一是上传普通文本文件二是上传任务运行时依赖的相关文件如 Shell 脚本、SQL 文件、数据文件等。其底层存储由resource.storage.type决定可选的后端包括分布式文件系统Hadoop HDFS2.6、MinIO 集群云存储产品AWS S3、阿里云 OSS、华为云 OBS、腾讯云 COS此外源码枚举还支持 GCS、ABS本地文件系统LOCALStandalone 模式下无需外部 HDFS 或 S3 即可使用Cluster 模式下也可借助 S3FS-FUSE 挂载 S3、JINDO-FUSE 挂载 OSS 到本机后以本地文件系统方式操作远程文件。从仓库源码 StorageType.java 可以看到存储类型枚举完整支持LOCAL、HDFS、OSS、S3、GCS、ABS、OBS、COS八种且提供了getStorageType(String)的容错解析入口非法值会被安全降级为空。不同存储类型对应的配置文件与关键参数汇总如下conf目录均指各服务模块下的配置目录存储类型需要修改的配置文件关键参数LOCALcommon.propertiesresource.storage.type、resource.storage.upload.base.pathHDFScommon.propertiesresource.storage.type、resource.hdfs.fs.defaultFS、resource.hdfs.root.userS3common.propertiesaws.yamlresource.storage.type S3 凭证/Bucket/Region/EndpointOSScommon.propertiesresource.storage.type 阿里云 AccessKey/Bucket/EndpointOBScommon.propertiesresource.storage.type 华为云 AccessKey/Bucket/EndpointCOSresource-center.yamlcommon.properties腾讯云密钥/Region/Bucket resource.storage.typeCOS仓库内置的默认配置模板位于 dolphinscheduler-common/src/main/resources/common.properties其中默认值为resource.storage.typeLOCAL、resource.storage.upload.base.path/tmp/dolphinscheduler部署包构建时会被复制到各个服务模块的conf目录下。使用本地文件系统LOCAL资源中心默认使用本地文件系统开箱即用无需任何额外配置。仅当需要修改默认存储路径时才需要调整common.properties。按部署形态区分需要修改的配置文件位置Cluster / Pseudo-Cluster 模式需要同时配置api-server/conf/common.properties与worker-server/conf/common.propertiesStandalone 模式只需配置standalone-server/conf/common.properties。最需要关注的参数是resource.storage.upload.base.path示例配置如下# 资源存储的基础路径DolphinScheduler 会在该目录不存在时自动创建 resource.storage.upload.base.path/tmp/dolphinscheduler修改它时有三个前提必须满足部署用户文档中对应tenant resource.hdfs.root.user所指向的租户/HDFS 根用户对resource.storage.upload.base.path目录拥有读写权限例如/tmp/dolphinscheduler若不想使用默认值务必显式修改resource.storage.upload.base.path避免文件落入预期之外的路径LOCAL 模式不支持分布式读写资源只能在同一台机器上使用——除非挂载了共享文件挂载点如 NFS 共享目录。关于 LOCAL 的本质文档与默认配置注释都明确指出resource.storage.typeLOCAL实际等价于两条配置的组合——resource.storage.typeHDFS加resource.hdfs.fs.defaultFSfile:///。LOCAL只是面向用户友好的别名便于本地资源中心默认启用。这一点在 common.properties 的注释中也有同样说明。注意LOCAL 模式下resource.query.interval10000查询间隔单位毫秒等其他通用参数保持默认即可。连接 AWS S3若要将资源中心的后端存储切换到 S3需要同时配置四个文件api-server/conf/common.properties、api-server/conf/aws.yaml、worker-server/conf/common.properties、worker-server/conf/aws.yaml。第一步在common.properties中启用 S3 存储类型resource.storage.typeS3第二步在aws.yaml中填写 S3 连接信息aws: s3: # AWS 凭证提供方式。支持 # AWSStaticCredentialsProvider: 使用 AccessKey/SecretKey 认证 # InstanceProfileCredentialsProvider: 使用 IAM 角色认证 credentials.provider.type: AWSStaticCredentialsProvider access.key.id: access.key.id access.key.secret: access.key.secret region: region bucket.name: bucket.name endpoint: endpoint其中credentials.provider.type支持两种取值AWSStaticCredentialsProvider直接使用 Access Key 与 Secret Key 完成静态凭证认证InstanceProfileCredentialsProvider使用 AWS IAM 角色自动获取临时凭证适合部署在 EC2 等云内环境。仓库内置的 aws.yaml 模板 除 S3 外还包含 EMR、SageMaker、DMS、Datasync 等服务的同类配置段均支持上述两种凭证提供方式。模板中的示例值如region: us-east-1、bucket.name: dolphinscheduler仅用于演示实际使用时请替换为真实值若对接 MinIO 等 S3 兼容对象存储endpoint可指向 MinIO 服务地址。另外在common.properties中还存在与 S3 路径相关的说明若使用 S3resource.hdfs.fs.defaultFS的取值形如s3a://dolphinschedulerHDFS 情况下如启用 NameNode HA则需将 Hadoop 集群的core-site.xml与hdfs-site.xml复制到conf目录见下文注意事项。连接阿里云 OSS接入 OSS 需要修改api-server/conf/common.properties与worker-server/conf/common.properties两个文件具体配置字段如下# 阿里云 AccessKey ID设置 resource.storage.typeOSS 时必填 resource.alibaba.cloud.access.key.idyour-access-key-id # 阿里云 AccessKey Secret设置 resource.storage.typeOSS 时必填 resource.alibaba.cloud.access.key.secretyour-access-key-secret # 阿里云 Region设置 resource.storage.typeOSS 时必填 resource.alibaba.cloud.regioncn-hangzhou # OSS Bucket 名称设置 resource.storage.typeOSS 时必填 resource.alibaba.cloud.oss.bucket.namedolphinscheduler # OSS Bucket Endpoint设置 resource.storage.typeOSS 时必填 resource.alibaba.cloud.oss.endpointhttps://oss-cn-hangzhou.aliyuncs.com并同时将resource.storage.type设置为OSS。这些键名与 StorageConstants.java 中定义的常量完全一致如ALIBABA_CLOUD_OSS_BUCKET_NAME、ALIBABA_CLOUD_OSS_END_POINT说明它们由存储层统一解析、驱动对象存储读写。仓库同时提供了 resource-center.yaml 模板 中对应的 OSS 段落两种文件可按部署实际选择其一。连接华为云 OBS接入 OBS 同样只需修改api-server/conf/common.properties与worker-server/conf/common.properties# AccessKey ID设置 resource.storage.typeOBS 时必填 resource.huawei.cloud.access.key.idyour-access-key-id # AccessKey Secret设置 resource.storage.typeOBS 时必填 resource.huawei.cloud.access.key.secretyour-access-key-secret # OBS Bucket 名称设置 resource.storage.typeOBS 时必填 resource.huawei.cloud.obs.bucket.namedolphinscheduler # OBS Endpoint设置 resource.storage.typeOBS 时必填 resource.huawei.cloud.obs.endpointobs.cn-southwest-2.huaweicloud.com并将resource.storage.type设置为OBS。相关键名同样收录于 StorageConstants.java与resource-center.yaml中的 Huawei 段落bucket/endpoint/access key一一对应。连接腾讯云 COS接入 COS 需要修改api-server/conf/resource-center.yaml与worker-server/conf/resource-center.yaml配置内容如下resource: # 腾讯云 COS 配置设置 resource.storage.typeCOS 时必填 tencent: cloud: access: key: id: your-access-key-id secret: your-access-key-secret cos: # 预定义 Region 编码请参考腾讯云官方 Region 列表填写 region: ap-nanjing bucket: name: dolphinscheduler随后还需在两个服务的common.properties中启用 COS 存储类型resource.storage.typeCOS该 YAML 模板位于仓库 dolphinscheduler-common/src/main/resources/resource-center.yaml其中除 COS 外还预置了 Azure ABS、阿里云 OSS、Google GCS、华为云 OBS 等云存储的配置段可作为多云切换时的参考。接入云存储时的通用注意事项无论选择哪种云存储后端以下三条规则都适用原文档明确强调仓库配置注释也与之呼应只配 API 不配 Worker 会导致任务不可用如果只修改api-server/conf/common.properties资源上传功能可用但工作流中的任务无法读取/执行这些资源。要使用资源必须同步修改worker-server/conf/common.properties。部署用户需具备操作权限使用资源上传功能时安装部署 中指定的部署用户必须拥有对应存储的相关操作权限。Hadoop HA 场景需复制配置文件若使用启用了 HA 的 Hadoop 集群并启用 HDFS 资源上传需将集群中的core-site.xml与hdfs-site.xml复制到worker-server/conf和api-server/conf否则可跳过此步骤。此外common.properties 中与 HDFS 相关的默认参数也值得了解resource.hdfs.root.userhdfs指定 HDFS 根用户HDFS 模式下需具备在根路径下创建目录的权限resource.hdfs.fs.defaultFShdfs://mycluster:8020为默认 NameNode 地址若使用 Kerberos还需关注hadoop.security.authentication.startup.state、java.security.krb5.conf.path、login.user.keytab.username等项。从源码看存储接入的插件化设计资源中心之所以能对多种存储后端做到改一行配置即可切换得益于仓库中独立的存储插件模块 dolphinscheduler-storage-plugin。其 API 模块定义了清晰的抽象层StorageType八种存储类型的枚举LOCAL/HDFS/OSS/S3/GCS/ABS/OBS/COS见 StorageType.javaStorageOperator/AbstractStorageOperator存储读写操作抽象各存储后端通过实现该接口接入StorageOperatorFactory/LocalStorageOperatorFactory工厂类负责按resource.storage.type实例化对应存储实现StorageConfiguration/StorageEntity/ResourceMetadata配置装载与资源元数据模型LocalStorageOperatorLOCAL 后端的默认实现对应文档本地文件系统开箱即用的行为。配置键的统一命名也体现了这一设计resource.storage.type、resource.storage.upload.base.path等核心键被收敛在 StorageConstants.java云厂商相关键S3/OSS/OBS 等也各有常量对应从 dolphinscheduler-common/src/test/resources/common.properties 可以看到完整键集合包括 GCSresource.google.cloud.storage.bucket.name、resource.google.cloud.storage.credential与 ABSresource.azure.blob.storage.connection.string、resource.azure.blob.storage.container.name等可作为接入更多云存储时的键名清单。小结本文完整覆盖了资源中心的存储配置体系LOCAL 本地文件系统是默认且零配置的起点适合 Standalone 快速体验S3/OSS/OBS/COS 通过resource.storage.type一行切换配合各自的aws.yaml或resource-center.yaml凭证文件即可接入。核心要点可归结为四句话API 与 Worker 的配置必须成对修改LOCAL 只适合单机除非共享挂载云存储的密钥、Region、Bucket、Endpoint 缺一不可Hadoop HA 场景记得同步core-site.xml与hdfs-site.xml。在此基础上借助存储插件化的源码结构你甚至可以自行扩展新的存储后端。【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考