Apache DolphinScheduler 文件管理实战:资源中心文件的上传、编辑与工作流引用 任务调度大数据后端前端【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址https://gitcode.com/gh_mirrors/do/dolphinscheduler点击查看免费下载文件管理是 Apache DolphinScheduler「资源中心」的核心能力之一。当工作流执行过程中需要引用第三方 jar 包或需要以自定义脚本Shell、Python、SQL 等完成特定逻辑时都需要先在文件管理页面完成脚本与依赖的托管。本文以当前仓库 docs/docs/zh/guide/resource/file-manage.md 为主线完整讲解文件管理支持的文件类型、创建/上传/查看/下载/重命名/删除等基础操作并通过一个 Shell 脚本示例演示如何在 Shell 任务中引用资源中心文件同时结合 ResourcesController.java 等源码说明其背后的存储与调用机制。文件管理能解决什么问题在 DolphinScheduler 中任务节点尤其是 Shell、Python、MR、Spark 等的脚本内容虽然可以直接写在任务参数里但以下场景更适合把文件托管到资源中心复用第三方 jar 包MR、Spark、Flink 等任务需要把依赖 jar 分发到执行节点通过资源中心统一管理、按需选择自定义脚本沉淀把常用的 Shell/Python/SQL 脚本作为资源保存多个工作流可复用同一份脚本配置文件集中管理如conf、xml、properties、hql等配置与查询文件便于统一维护、版本迭代规避超长脚本的维护成本脚本内容不再散落在各个任务节点中而是集中存放、统一编辑。从实现角度看资源文件由 API 层统一暴露管理接口。ResourcesController挂载在resources路径下见 ResourcesController.java提供查询列表、创建目录、上传文件、在线创建、在线编辑、重命名、删除、查看内容、下载、查询根目录等 REST 接口并统一委托给ResourcesService执行。其中资源类型使用ResourceType枚举区分——FILE普通文件与UDFUDF 函数文件管理页面即FILE类型的资源。注意当您以admin身份登录并操作文件时需要先为admin设置租户否则文件管理相关操作无法正常进行。租户与文件存储目录、运行用户隔离相关是 DolphinScheduler 资源体系的先决条件。文件管理的基础操作进入「资源中心 → 文件管理」页面后可以看到文件列表支持分页与关键字搜索以及“创建文件”“上传文件”“创建目录”等入口按钮。对每个文件列表行内还提供编辑、重命名、下载、删除等操作入口。图片说明文件管理页面包含文件列表、创建文件、上传文件、创建目录等操作入口。支持的文件类型文件管理支持以下文件格式txt、log、sh、conf、cfg、py、java、sql、xml、hql、properties。文本类txt、log、properties、conf、cfg、xml脚本类sh、py、sql、hql、java其中可在线编辑的文件创建后可通过“编辑”按钮直接在页面内修改内容不可编辑的类型则只能通过重新上传覆盖更新。创建文件点击“创建文件”按钮在弹出的表单中填写文件名称含后缀、选择文件格式、填写描述并输入文件内容确认后即完成在线创建。此操作对应后端接口POST /resources/online-create接口同时接收type、fileName、suffix、content、currentDir参数后端将fileName与suffix拼接为完整文件名后调用createFileFromContent写入存储见 ResourcesController.java。图片说明创建文件弹窗可填写文件名称、格式、描述与内容。上传文件点击“上传文件”按钮将文件拖拽到上传区域文件名会自动以上传文件的原始名称补全也可手动修改确认后完成上传。此操作对应后端接口POST /resources使用MultipartFile接收文件内容同时接收type、name、currentDir参数见 ResourcesController.java。前端实现位于 upload/index.tsx上传组件通过customRequest钩子自动将所选文件的name与file写入表单对应代码中state.uploadForm.name file.name; state.uploadForm.file file.file这与文档中“文件名自动以上传文件名称补全”的行为一致。图片说明上传文件弹窗文件名称自动补全支持拖拽上传。文件查看对于可查看的文件类型点击文件名称即可查看文件详情页面内展示文件内容。查看操作对应后端接口GET /resources/view通过fullName定位文件并支持skipLineNum与limit参数控制从第几行开始读取、读取多少行实现分页查看见 ResourcesController.java。图片说明文件详情页可查看文件内容并支持下载操作。下载文件下载文件有两种方式在文件列表中点击目标文件行内的“下载”按钮在文件详情页中点击右上角的“下载”按钮。下载操作对应后端接口GET /resources/download通过fullName定位文件并将内容写入HttpServletResponse返回给浏览器见 ResourcesController.java。文件重命名点击文件行内的重命名图标在弹出的表单中修改文件名称与描述确认后生效。重命名操作对应后端接口PUT /resources后端会先判断新名称是否携带扩展名——如果新名称没有扩展名则按“目录重命名”处理renameDirectory如果有扩展名且未附带新文件则按“文件重命名”处理renameFile如果同时上传了新文件则执行文件内容更新updateFile见 ResourcesController.java。图片说明文件重命名弹窗可修改文件名称与描述。删除文件在文件列表中找到目标文件点击“删除”按钮并确认即可删除指定文件。删除操作对应后端接口DELETE /resources通过fullName指定待删除文件的完整路径见 ResourcesController.java。删除为不可逆操作请谨慎执行。存储与权限文件到底放在哪里资源文件并非只存在于数据库中其内容实际存放在由resource.storage.type指定的存储后端上元数据如文件名、大小、所属用户、更新时间等则登记在数据库中供列表展示与检索使用。相关配置常量定义在 Constants.java 中配置项常量名作用resource.storage.typeRESOURCE_STORAGE_TYPE存储后端类型如本地文件系统HDFS、S3、OSS、GCS、ABS 等resource.storage.upload.base.pathRESOURCE_UPLOAD_PATH资源上传的根路径data.basedir.pathDATA_BASEDIR_PATH本地数据基础目录以本地存储为例资源的完整路径形如file:///tmp/dolphinscheduler/storage/default/resources/demo.sql该示例出现在 ResourcesController.java 的接口文档中其中resources即RESOURCE_TYPE_FILE常量对应的目录名。存储插件的具体实现位于 dolphinscheduler-storage-plugin 模块支持本地 HDFS、S3、OSS、OBS、GCS、ABS 等多种后端可通过配置切换。任务样例在 Shell 工作流中引用资源文件下面通过一个简单的 Shell 脚本示例演示如何在工作流定义中使用资源中心的文件。MR、Spark 等任务需要引用 jar 包时操作逻辑同理——在任务配置的“资源”中选择对应文件即可。第一步创建 Shell 文件进入「资源中心 → 文件管理」点击“创建文件”选择格式sh文件名填写hello.sh内容填写#!/bin/bash echo hello world确认创建后资源列表中将出现hello.sh其资源路径为resource/hello.sh。图片说明创建内容为 echo hello world 的 hello.sh 文件。第二步创建工作流并配置 Shell 任务在「项目管理 → 工作流定义」中创建一个新的工作流添加一个 Shell 任务节点进行如下配置脚本sh resource/hello.sh资源选择resource/hello.sh注意脚本中引用资源文件时文件名称必须与所选择资源的全路径保持一致。例如资源路径为resource/hello.sh则脚本中调用必须使用resource/hello.sh全路径不能只写hello.sh。从源码角度可以理解这一约束Shell 任务的参数模型 ShellParameters.java 中同时持有rawScript脚本内容与resourceList引用的资源列表任务执行时会先解析taskExecutionContext.getTaskParams()得到 Shell 参数见 ShellTask.java随后由执行框架根据资源列表将对应文件下发/同步到任务执行节点脚本中的全路径才能正确命中已就绪的资源文件。图片说明Shell 任务节点中配置脚本 sh resource/hello.sh并选择资源 resource/hello.sh。第三步运行并查看结果保存并上线工作流点击“运行”执行。执行完成后在工作流实例中找到该 Shell 节点打开其日志可以看到脚本输出的hello world结果。图片说明Shell 节点运行日志展示脚本执行输出。小结文件管理是 DolphinScheduler 资源中心的基础能力它把第三方 jar、自定义脚本、配置文件等统一托管并在任务定义中以“资源”的形式被引用配合存储插件与租户体系实现文件的安全分发。掌握本文所述的创建、上传、查看、下载、重命名、删除操作以及“脚本路径必须与资源全路径一致”这一关键约束即可顺畅地在工作流中复用资源文件。对于 MR、Spark、Flink 等依赖 jar 包的任务复用同样的资源选择方式即可完成依赖分发。赞分享任务调度大数据后端前端【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址https://gitcode.com/gh_mirrors/do/dolphinscheduler点击查看免费下载相关推荐Apache DolphinScheduler 文件管理实战资源中心文件的上传、编辑与工作流引用Apache DolphinScheduler 文件管理实战资源中心文件的上传、编辑与工作流引用 文件管理File Management是 Apache任务调度大数据后端前端Apache DolphinScheduler 文件管理资源中心实战指南创建、上传与在 Shell 工作流中引用资源文件Apache DolphinScheduler 文件管理资源中心实战指南创建、上传与在 Shell 工作流中引用资源文件 导读 文件管理是 Apache任务调度数据编排工作流自动化后端大数据Apache DolphinScheduler 文件管理资源中心文件的全生命周期操作与调度实战指南Apache DolphinScheduler 文件管理资源中心文件的全生命周期操作与调度实战指南 文件管理File Manage是 Apache Dol任务调度数据编排工作流自动化后端大数据创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考