You need to enable JavaScript to run this app.
E-MapReduce

E-MapReduce

复制全文
DolphinScheduler 对接 EMR Serverless
Dolphin Serverless 任务输出 JobID
复制全文
Dolphin Serverless 任务输出 JobID

在火山引擎 EMR 上执行 Dolphin Serverless 任务时,当前支持输出任务的 JobID,便于下游节点获取。本文为您介绍如何向下游输出 Dolphin Serverless 任务的 JobID。

背景信息

部分业务场景需要对运行的 Serverless 任务做一些信息收集,方便做数据关联(升级为血缘),此时获取到 Serverless 任务节点运行的 Serverless JobID。在 Dolphin 的设计下,具备通过自定义变量的形式(OUT),使得上游节点将某些参数保存在工作流上下文中,使得下游节点运行时可以获取。因此,对于 Serverless 任务节点,运行完毕后通过将 Serverless 任务 ID 输出到上下文中,来达到下游获取任务 ID 做信息收集的目的。

Dolphin 依赖包更新

下载依赖包

dolphinscheduler-task-volcanoemrserverless-3.1.9.jar
未知大小

更新Dolphin master-server

# 替换为上述下载包
unzip serverless-plugin.zip

# 替换为实际dolphin用户目录
chown -R dolphinscheduler:dolphinscheduler serverless-plugin
# 替换为实际的dolphin_scheduler master-server路径
cp -rp serverless-plugin/. /usr/lib/emr/current/dolphin_scheduler/master-server/libs

更新Dolphin worker-server

# 替换为上述下载包
unzip serverless-plugin.zip

# 替换为实际dolphin用户目录
chown -R dolphinscheduler:dolphinscheduler serverless-plugin

# 替换为实际的dolphin_scheduler worker-server路径
cp -rp serverless-plugin/. /usr/lib/emr/current/dolphin_scheduler/worker-server/libs

更新Dolphin api-server

# 下载包
unzip serverless-plugin.zip

# 替换为实际dolphin用户目录
chown -R dolphinscheduler:dolphinscheduler serverless-plugin

# 替换为实际的dolphin_scheduler api-server路径
cp -rp serverless-plugin/. /usr/lib/emr/current/dolphin_scheduler/api-server/libs

# 先对原始 ui 产物做备份
mv /usr/lib/emr/current/dolphin_scheduler/api-server/ui /usr/lib/emr/current/dolphin_scheduler/api-server/ui-bak
# 放入 serverless 提供的 ui
mv serverless-plugin/ui /usr/lib/emr/current/dolphin_scheduler/api-server/ui

输出 Dolphin Serverless 任务 JobID

完成上述准备工作后,您可通过以下方式输出当前 Serverless 任务节点的 Job ID。

任务配置

  1. 在 Serverless 任务节点中添加自定义参数,自定义参数要求如下。
    Image
    • 参数名称任意。
    • 参数方向设置为 OUT,含义为向下游节点输出。
    • 参数类型为 VARCHAR 即可。
    • 参数值必须为 ${emr_serverless_job_id},​当该节点运行成功后,参数值会被替换为对应的 Serverless JobID
  2. 在有多个 Serverless 节点的情况下,可以给每个节点的输出 JobID 的自定义参数取不同的参数名,避免覆盖。
    比如下图有 3 个 Serverless 任务节点,分别配置输出 Job ID 的参数名为 spark_1,spark_2,spark_3
    Image
  3. 在最终的 shell 节点中打印工作流中所有的 Serverless Job ID。
    Image

查看与使用输出的Job ID

  1. 工作流运行完毕后,在 EMR Serverless 控制台可以看到当前任务的 JobID。
    Image

  2. 同时,您可以在工作流下游的 shell 节点日志中可以看到上游 Serverless 任务的JobID。

  3. Serverless Query SDK 可以通过 Job ID 获取任务信息,日志,Tracking Url 信息,使用文档参考:Java Query SDK

最近更新时间:2026.03.17 19:13:19
这个页面对您有帮助吗?
有用
有用
无用
无用