Apache DolphinScheduler 文件管理:资源中心文件的全生命周期操作与调度实战指南

发布时间:2026/9/15 14:26:14
Apache DolphinScheduler 文件管理:资源中心文件的全生命周期操作与调度实战指南 Apache DolphinScheduler 文件管理资源中心文件的全生命周期操作与调度实战指南【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler文件管理File Manage是 Apache DolphinScheduler 资源中心的核心模块用于统一管理工作流调度过程中所需的第三方 jar 包、自定义脚本shell/python/sql 等与各类配置文件。本文将以资源中心文件管理页面为主体系统讲解文件的新建、上传、查看、下载、重命名、删除等基础操作并结合仓库源码说明文件的底层存储路径规则与权限要求最后通过一个 shell 脚本任务样例演示创建文件 → 工作流引用 → 查看运行日志的完整闭环帮助读者在真实调度任务中正确使用资源中心文件。文件管理的定位与适用场景在 DolphinScheduler 中资源中心按类型划分为文件FILE与 UDF 函数两类。文件管理页面面向的场景包括调度过程中需要引用第三方 jar 包如 MR、Spark、Flink 任务的驱动包或依赖包需要维护自定义脚本shell、python、sql、hql 等并在任务节点中直接调用需要统一存放任务依赖的配置文件conf、xml、properties 等。从源码结构看文件管理页面由前端 dolphinscheduler-ui/src/views/resource/file/index.tsx 渲染它向通用资源列表组件传入resourceType{FILE}对应后端 ResourcesController 中typeFILE的资源管理接口前后端通过资源类型参数即可在同一套组件上同时支撑文件与 UDF 管理。注意当您以admin身份登录并操作文件时需要先为admin设置租户Tenant。这是因为资源文件在存储层按租户目录隔离详见下文存储路径规则未设置租户的用户无法获得合法的资源根目录。基础操作文件管理页面提供完整的基础操作能力创建、上传、查看、下载、重命名与删除并支持目录文件夹分级与关键字搜索。创建文件点击创建文件按钮在弹窗中填写文件名称并选择格式后缀文件即写入当前目录。文件格式支持以下几种类型txt、log、sh、conf、cfg、py、java、sql、xml、hql、properties从后端接口看创建文件对应POST /resources/online-createcreateFileFromContent其参数包括type资源类型、fileName文件名称、suffix文件后缀、content文件内容与currentDir当前目录服务端会将fileName与suffix拼接为完整的资源文件名后写入存储。值得注意的是type参数的类型为ResourceType枚举这与dolphinscheduler-spi中的资源类型定义一致是区分 FILE 与 UDF 的关键标识。创建文件夹点击创建文件夹按钮可在当前目录下创建子目录用于按业务或任务类型归类文件。对应后端接口为POST /resources/directorycreateDirectory需要传入type、name目录名与currentDir父目录。前端列表页顶部同时提供创建文件夹、创建文件、上传文件三个入口以及关键字搜索框便于在大目录下快速定位资源见 资源列表页组件。上传文件点击上传文件按钮进行上传。将文件拖拽到上传区域后文件名会自动以上传文件的原名称补全无需手动输入名称。上传动作对应后端POST /resourcescreateFile接口携带type、name、fileMultipartFile类型的文件对象与currentDir参数由ResourcesService.createFile落盘。此方式适合已有现成脚本或 jar 包的场景比在线创建更能保证文件内容与本地一致。文件查看对可查看的文件类型如文本类文件点击文件名称即可进入文件详情页查看内容。前端通过GET /resources/view接口按行读取文件内容请求参数包含fullName资源完整路径、skipLineNum跳过行数与limit读取行数三个参数服务端在 ResourcesController.viewResource 中做了limit -1时按全部行数读取的特殊处理便于详情页一次性展示大文件。下载文件下载支持两种入口在文件列表的操作列点击下载按钮直接下载进入文件详情页后点击右上角的下载按钮下载。两者最终都调用GET /resources/download接口downloadResource通过HttpServletResponse以流式方式将资源内容输出到浏览器端。文件重命名选中文件后点击重命名按钮可修改文件名称。从 updateResource 的实现可以看到一个细节当新名称不带扩展名时后端会将其视为目录重命名renameDirectory当新名称带扩展名且未携带新文件内容时则执行文件重命名renameFile若同时上传了新文件则执行覆盖更新updateFile。因此重命名目录与重命名文件共用同一入口用户只需关注 UI 上传框是否附带文件即可。删除文件在文件列表中点击删除按钮即可删除指定文件对应DELETE /resources接口按fullName删除。删除操作不可恢复请谨慎确认目标文件不再被任何工作流引用后再执行。存储路径规则资源文件放在哪里理解资源文件的物理位置是正确引用资源的前提。从 AbstractStorageOperator 的源码可以看出资源目录的拼接规则基础目录为各存储插件配置的资源根路径如本地文件系统的resourceBaseAbsolutePath在其下追加租户编码作为租户隔离目录再追加资源类型目录FILE类型固定为resources目录名。因此一个文件资源的完整路径形如{存储根目录}/{租户编码}/resources/{目录}/{文件名}这也解释了任务节点中脚本引用资源时必须使用相对完整路径如resource/hello.sh的原因该路径就是存储中相对于租户目录的规范化路径与资源中心中看到的目录结构一一对应。任务样例在工作流中引用 shell 脚本下面通过一个简单的 shell 脚本演示如何在工作流定义中使用资源中心的文件。MR、Spark 等任务需要引用 jar 包时操作方式同理——把 jar 上传到资源中心然后在任务节点的资源参数中勾选即可。步骤一创建 shell 文件在文件管理页面点击创建文件文件格式选择sh输入以下脚本内容并保存文件名为hello.sh#!/bin/bash echo hello world步骤二创建工作流并引用资源在项目管理的工作流定义模块创建一个新的工作流添加一个 shell 任务并按如下方式配置脚本sh resource/hello.sh资源选择resource/hello.sh注意脚本中引用资源文件时文件名称需要保持和所选择资源的全路径一致。例如资源路径为resource/hello.sh则脚本中的调用必须使用resource/hello.sh全路径否则 Worker 在解析资源时会因路径不一致而无法定位文件。Worker 端正是通过任务参数中声明的资源全路径去资源中心拉取/定位对应文件从而保证脚本在调度执行时能拿到真实内容。步骤三运行并查看结果保存并上线工作流后手动运行一次。进入工作流实例页面点击该 shell 节点查看运行日志即可看到hello world输出说明资源文件已被成功加载并执行。小结本文围绕 DolphinScheduler 资源中心的文件管理模块梳理了文件创建、上传、查看、下载、重命名、删除等基础操作的入口与对应后端接口并结合存储层源码揭示了存储根目录/租户编码/resources/文件路径的物理存储规则最后以 shell 脚本为例完成了创建文件 → 工作流引用 → 运行验证的完整实战闭环。掌握这些操作与路径规则后无论是自定义脚本还是第三方 jar 包都能在调度任务中被正确、安全地引用这也是使用 MR、Spark、Flink 等重依赖任务前必须打好的基础。【免费下载链接】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),仅供参考