0
点赞
收藏
分享

微信扫一扫

03.DolphinScheduler资源中心



文章目录

  • 文件管理
  • 基础操作
  • 创建文件
  • 上传文件
  • 文件查看
  • 下载文件
  • 文件重命名
  • 删除文件
  • 任务样例
  • 创建 shell 文件
  • 创建工作流执行文件
  • 查看结果
  • UDF管理
  • 函数管理
  • 任务样例
  • 编写 UDF 函数
  • 配置 UDF 函数
  • 使用 UDF 函数
  • 任务组管理
  • 任务组配置
  • 新建任务组
  • 查看任务组队列
  • 任务组的使用
  • 任务组的实现逻辑
  • 获取任务组资源:
  • 释放与唤醒:
  • 任务组流程图


文件管理

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

注意:

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

基础操作

03.DolphinScheduler资源中心_spark

创建文件

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

03.DolphinScheduler资源中心_上传_02

上传文件

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

03.DolphinScheduler资源中心_java_03

文件查看

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

03.DolphinScheduler资源中心_优先级_04

下载文件

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

文件重命名

03.DolphinScheduler资源中心_优先级_05

删除文件

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

任务样例

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

创建 shell 文件

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

03.DolphinScheduler资源中心_大数据_06

创建工作流执行文件

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

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

注意:

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

2.在这个sh脚本中引用echo 测试输出Shell文件内容:$[yyyyMMddHHmmss],时间是无法输出的

03.DolphinScheduler资源中心_大数据_07

查看结果

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

03.DolphinScheduler资源中心_上传_08

UDF管理

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

函数管理

  • 创建 UDF 函数

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

  • UDF 函数名称:输入 UDF 函数时的名称
  • 包名类名:输入 UDF 函数的全路径
  • UDF 资源:设置创建的 UDF 对应的资源文件

注意:

创建UDF函数之前,需要再UDF管理->资源管理中上传UDF函数Jar包

03.DolphinScheduler资源中心_上传_09

任务样例

编写 UDF 函数

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

03.DolphinScheduler资源中心_上传_10

配置 UDF 函数

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

03.DolphinScheduler资源中心_上传_11

使用 UDF 函数

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

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

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

03.DolphinScheduler资源中心_大数据_12

任务组管理

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

任务组配置

新建任务组

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

03.DolphinScheduler资源中心_spark_13

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

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

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

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

查看任务组队列

03.DolphinScheduler资源中心_上传_14

任务组的使用

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

我们以 shell 节点为例:

03.DolphinScheduler资源中心_大数据_15

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

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

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

任务组的实现逻辑

获取任务组资源:

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

释放与唤醒:

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

任务组流程图

03.DolphinScheduler资源中心_大数据_16


举报

相关推荐

0 条评论