0


03.DolphinScheduler资源中心

文章目录

文件管理

当在调度过程中需要使用到第三方的 jar 或者用户需要自定义脚本的情况,可以通过在该页面完成相关操作。可创建的文件类型包括:

txt/log/sh/conf/py/java

等。并且可以对文件进行编辑、重命名、下载和删除等操作。

注意:

  • 当您以admin身份等入并操作文件时,需要先给admin设置租户

基础操作

file-manage

创建文件

文件格式支持以下几种类型:txt、log、sh、conf、cfg、py、java、sql、xml、hql、properties

create-file

上传文件

上传文件:点击"上传文件"按钮进行上传,将文件拖拽到上传区域,文件名会自动以上传的文件名称补全

upload-file

文件查看

对可查看的文件类型,点击文件名称,可查看文件详情

file_detail

下载文件

点击文件列表的"下载"按钮下载文件或者在文件详情中点击右上角"下载"按钮下载文件

文件重命名

rename-file

删除文件

文件列表->点击"删除"按钮,删除指定文件

任务样例

该样例主要通过一个简单的 shell 脚本,来演示如何在工作流定义中使用资源中心的文件。像 MR、Spark 等任务需要用到 jar 包,也是同理。

创建 shell 文件

创建一个 shell 文件,输出 “hello world”。

create-shell

创建工作流执行文件

在项目管理的工作流定义模块,创建一个新的工作流,使用 shell 任务。

  • 脚本:sh hello.sh
  • 资源:选择 hello.sh

注意:

1.脚本中选择资源文件时文件名称需要保持和所选择资源全路径一致: 例如:资源路径为

resource/hello.sh

则脚本中调用需要使用

resource/hello.sh

全路径

2.在这个sh脚本中引用

echo 测试输出Shell文件内容:$[yyyyMMddHHmmss]

,时间是无法输出的

use-shell

查看结果

可以在工作流实例中,查看该节点运行的日志结果。如下图:

log-shell

UDF管理

  • 资源管理和文件管理功能类似,不同之处是资源管理是上传的 UDF 函数,文件管理上传的是用户程序,脚本及配置文件。
  • 主要包括以下操作:重命名、下载、删除等。
  • 上传 UDF 资源和上传文件相同。

函数管理

  • 创建 UDF 函数> 点击“创建 UDF 函数”,输入 UDF 函数参数,选择udf资源,点击“提交”,创建 UDF 函数。 目前只支持 HIVE 的临时 UDF 函数
  • UDF 函数名称:输入 UDF 函数时的名称
  • 包名类名:输入 UDF 函数的全路径
  • UDF 资源:设置创建的 UDF 对应的资源文件

注意:

创建UDF函数之前,需要再

UDF管理->资源管理

中上传UDF函数Jar包

image-20230325095242781

任务样例

编写 UDF 函数

用户可以根据实际生产需求,自定义想要的 UDF 函数。这里编写一个在任意字符串的末尾添加 “HelloWorld” 的函数。如下图所示:

code-udf

配置 UDF 函数

配置 UDF 函数前,需要先通过资源管理上传所需的函数 jar 包。然后进入函数管理,配置相关信息即可。如下图所示:

conf-udf

使用 UDF 函数

在使用 UDF 函数过程中,用户只需关注具体的函数编写,通过资源中心上传配置完成即可。系统会自动配置 create function 语句,参考如下:SqlTask

进入工作流定义一个 SQL 节点,数据源类型选择为 HIVE,数据源实例类型为 HIVE/IMPALA。

  • SQL 语句:select HwUdf("abc"); 该函数与内置函数使用方式一样,直接使用函数名称即可访问。
  • UDF 函数:选择资源中心所配置的即可。

use-udf

任务组管理

任务组主要用于控制任务实例并发,旨在控制其他资源的压力(也可以控制 Hadoop 集群压力,不过集群会有队列管控)。您可在新建任务定义时,可配置对应的任务组,并配置任务在任务组内运行的优先级。

任务组配置

新建任务组

用户点击【资源中心】-【任务组管理】-【任务组配置】-新建任务组

image-20230325114023604

您需要输入图片中信息,其中

【任务组名称】:任务组在被使用时显示的名称

【项目名称】:任务组作用的项目,该项为非必选项,如果不选择,则整个系统所有项目均可使用该任务组。

【资源容量】:允许任务实例并发的最大数量

查看任务组队列

image-20230325114204983

任务组的使用

注:任务组的使用适用于由 worker 执行的任务,例如【switch】节点、【condition】节点、【sub_process】等由 master 负责执行的节点类型不受任务组控制。

我们以 shell 节点为例:

use-queue

关于任务组的配置,您需要做的只需要配置红色框内的部分,其中:

【任务组名称】:任务组配置页面显示的任务组名称,这里只能看到该项目有权限的任务组(新建任务组时选择了该项目),或作用在全局的任务组(新建任务组时没有选择项目)

【组内优先级】:在出现等待资源时,优先级高的任务会最先被 master 分发给 worker 执行,该部分数值越大,优先级越高。

任务组的实现逻辑

获取任务组资源:

Master 在分发任务时判断该任务是否配置了任务组,如果任务没有配置,则正常抛给 worker 运行;如果配置了任务组,在抛给 worker 执行之前检查任务组资源池剩余大小是否满足当前任务运行,如果满足资源池 -1,继续运行;如果不满足则退出任务分发,等待其他任务结束唤醒。

释放与唤醒:

当获取到任务组资源的任务结束运行后,会释放任务组资源,释放后会检查当前任务组是否有任务等待,如果有则标记优先级最好的任务可以运行,并新建一个可以执行的event。该event中存储着被标记可以获取资源的任务id,随后在获取任务组资源然后运行。

任务组流程图

task_group

标签: java 大数据 spark

本文转载自: https://blog.csdn.net/zhangshenghang/article/details/130391321
版权归原作者 jast_zsh 所有, 如有侵权,请联系我们删除。

“03.DolphinScheduler资源中心”的评论:

还没有评论