原文地址:https://www.cnblogs.com/honeybee/p/7921626.html

azkaban 动态传参shell篇

2. shell类型的job的参数传递

azkaban中的shell 作业,如何接收从webUI传递的参数?

step1: UI页面输入参数定义:
ui_test=test111111111

step2:在job文件myjob.job指定:

##作业定义文件UI输入参数接收:
job_param4=${ui_test}

##作业定义文件脚本命令行引用UI输入参数:
sh test_azkaban_job.sh "${job_param4}"

step3:shell test_azkaban_job.sh 的内容
vi test_azkaban_job.sh

echo "inputparamter:$1"  #接收job文件中传递的参数。

问题:在页面手动执行前面的job时,如果UI参数ui_test在job执行没有输入,会执行失败。异常信息如下:

hello ERROR - Failed to build job executor for job helloCould not find variable substitution for variable(s) [param4->ui_test ]

在定时调度任务指定时,需要指定工作流参数flowParameters :ui_test,避免该错误。

运行时参数:在UI页面重新输入运行时参数时,可以覆盖系统默认生成的参数值。

运行时参数,和UI输入的参数,都可以认为是全局参数,在整个工作流的作业
配置中,都可以通过 ${参数名} 的方式引用使用。

在shell 中直接引用 公共参数,运行时系统参数,UI输入参数,是无效的。
在shell中只能直接使用环境变量;公共参数,运行时系统参数,UI输入参数能只通过shell的脚本参数的方式传递
进来。

job文件中定义的环境变量参数,可以在shell脚本中直接引用,但只对当前job有效。

相关文章:

  • 2021-06-09
  • 2021-11-06
  • 2021-06-18
  • 2021-12-05
  • 2021-10-01
  • 2021-08-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-18
  • 2020-07-30
  • 2022-12-23
  • 2021-12-06
  • 2021-11-05
  • 2021-08-26
相关资源
相似解决方案