参数传递是调度字体工作流运行时非常重要的一部分,工作流的执行,单个作业的执行,多个工作流之间的依赖执行,历史任务重算,都涉及到参数传递和同步。
1 参数类型综述
azkaban的工作流中的参数可以分为如下几个类型:
Azkaban UI 页面输入参数
环境变量参数
job作业文件中定义的参数
工作流的用户定义的属性文件,上游作业传递给下游的参数
工作流运行时产生的系统参数
job的common参数
参数类型与其对应的参数范围如下:
参数类型
作用域
UI 页面输入参数 ,即工作流参数
flow全局有效
工作流ZIP压缩包中的属性文件(.properties结尾)
flow全局有效,zip文件目录以及子目录有效
工作流运行时参数
flow全局有效
环境变量参数
flow全局有效
job的common参数
job内局部有效
JOB文件中定义的参数
job内局部有效
上游作业传递给下游的参数
job内局部有效
2. job 参数简介commom参数
除了type,command,dependencies三个参数外,还有如下一些保留参数可以为每个job配置
参数
说明
retries
失败的job的自动重试的次数
retry.backoff
重试的间隔(毫秒)
working.dir
指定命令被调用的目录。默认的working目录是executions/${execution_ID}目录
env.property
指定在命令执行前需设置的环境变量。Property定义环境变量的名称,因此 env.VAR_NAME=VALUE就创建了一个$VAR_NAME环境变量,并且指定了它的VALUE
failure.emails
job失败时发送的邮箱,用逗号隔开
success.emails
job成功时发送的邮箱,用逗号隔开
notify.emails
job成功或失败都发送的邮箱,用逗号隔开
一个flow的email属性,只会取最后一个job的配置,其他的job的email配置将会被忽略。
3. job之间的参数传递
先看官网的描述: