暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

72. dolphinscheduler 文件/任务组/UDF管理

大数据技能圈 2023-04-19
212

1. 文件管理

当在调度过程中需要使用到第三方的 jar 或者用户需要自定义脚本的情况,可以通过在该页面完成相关操作。可创建的文件类型包括:txt/log/sh/conf/py/java 等。并且可以对文件进行编辑、重命名、下载和删除等操作。

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

1.1 基础操作

1.1.1 创建文件

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

1.1.2 上传文件

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

1.1.3 文件查看

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

1.1.4 下载文件

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

1.1.5 文件重命名 

1.1.6 删除文件

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

1.2 任务样例

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

1.2.1 创建 shell 文件

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

1.2.2 创建工作流执行文件

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

脚本:sh resource/hello.sh

资源:选择 resource/hello.sh

注意:脚本中选择资源文件时文件名称需要保持和所选择资源全路径一致:
例如:资源路径为resource/hello.sh 则脚本中调用需要使用resource/hello.sh全路径

1.2.3 查看结果

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

2. 任务组管理

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

2.1 任务组配置

2.1.1 新建任务组

 

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

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

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

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

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

2.1.2 查看任务组队列

点击按钮查看任务组使用信息

2.1.3 任务组的使用

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

我们以 shell 节点为例:

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

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

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

2.2 任务组的实现逻辑

2.2.1 获取任务组资源:

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

2.2.2 释放与唤醒:

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

2.2.3 任务组流程图

 

3. UDF 管理

资源管理和文件管理功能类似,不同之处是资源管理是上传的 UDF 函数,文件管理上传的是用户程序,脚本及配置文件。


主要包括以下操作:重命名、下载、删除等。


上传 UDF 资源和上传文件相同。


3.1 函数管理


创建 UDF 函数

点击“创建 UDF 函数”,输入 UDF 函数参数,选择udf资源,点击“提交”,创建 UDF 函数。目前只支持 HIVE 的临时 UDF 函数


UDF 函数名称:输入 UDF 函数时的名称


包名类名:输入 UDF 函数的全路径


UDF 资源:设置创建的 UDF 对应的资源文件

3.2 任务样例

3.2.1 编写 UDF 函数

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

3.2.2 配置 UDF 函数

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

3.2.3 使用 UDF 函数

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

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

SQL 语句:select HwUdf("abc"); 该函数与内置函数使用方式一样,直接使用函数名称即可访问。

UDF 函数:选择资源中心所配置的即可。

更多大数据内容请关注字节智传公众号:

文章转载自大数据技能圈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论