Skip to content

Latest commit

 

History

History
executable file
·
122 lines (89 loc) · 4.41 KB

6.不同调度参数详解.md

File metadata and controls

executable file
·
122 lines (89 loc) · 4.41 KB

Azkaban实战-Job参数设置

  • 系统内置Job common参数

    参数名 作用
    retries job失败以后的重试次数
    retry.backoff 每次重试前的等待毫秒数
    working.dir job的工作目录,默认是.job文件所在目录(不建议配置)
    env.property 设置job进程的环境变量
    failure.emails job失败报警邮箱
    success.emails job成功报警邮箱
    notify.emails job成功或失败报警邮箱
  • 系统内置Job运行时参数

    参数名 作用
    azkaban.job.attempt job失败以后的重试次数
    azkaban.job.id job名字
    azkaban.flow.flowid flow名字
    azkaban.flow.execid flow的执行id
    azkaban.flow.projectid project名字
    azkaban.flow.projectversion project版本
    azkaban.flow.uuid job成功或者警报邮箱
    azkaban.flow.start.timestamp flow开始执行的时间戳
    azkaban.flow.start.year flow开始执行的年
    azkaban.flow.start.month flow开始执行的月
    azkaban.flow.start.day flow开始执行的日
    azkaban.flow.start.hour flow开始执行的小时
    azkaban.flow.start.minute flow开始执行的分钟
    azkaban.flow.start.second flow开始执行的秒
    azkaban.flow.start.millseconds flow开始执行的毫秒
    azkaban.flow.start.timezone flow开始执行的时区
  • 自定义的参数

参数继承

  • 可以继承同一级/上一级的.properties文件配置的参数

  • 对于同一级别的.properties文件按照目录遍历子文件顺序确定优先级别(从低到高)

  • 对于出现在多个文件中的参数,取优先级最高值。

system.properties文件中配置了:
ant_home=/home/hadoop/ant
mvn_home=/home/hadoop/mvn

baz.job就可以继承ant_home和mvn_home的值。
myflow.properties文件中配置了:
ant_home=/home/azkaban/ant

加入foo.job是自定义的job,它会继承自myflow.properties和system.properties,它的ant_home最终值就是/home/azkaban/ant

参数替换

  • 参数值中的 ${keyx} 通配符,可以替换成keyx参数对应的值

  • 通配符可以嵌套使用

# myjob.job
param1=just prarm1
id=${azkaban.flow.execid}_${azkaban.flow.start.timestamp}
param2=${param1}
#最终的效果是,param2参数的值等于param1参数的值,而id参数是具体flow实例执行的时间戳,例如1234_15292952285123

job参数传入

  • job最终执行参数list,会在working.dir中写入一个jobname_props_随机数_tmp的文件

  • job执行前的参数可以继承上游job的执行输出的参数list

job参数传输

  • 如果一个job执行完需要输出参数list,可以输出到jobname_output_随机数_tmp文件

  • 如果一个job需要完成输出参数,需要实现相应的方法:getJobGeneratedProperties

Azkaban实战-调度参数设置

  • Notification Options 通知设置,包括成功和失败

    参数名 作用
    First Failure flow由于某个job失败已经可以判断flow最终失败的时候立即触发通知
    Flow Finished 发现某个job失败,但是等到正在运行的job做完再触发通知
  • Failure Options

    参数名 作用
    Finish Current Running 由于job失败导致flow失败的时候,等待当前其他正在运行的job做完
    Cancel AI 由于job失败导致flow失败的时候,杀掉当前其他正在运行的job
    Finish All Possible 由于job失败导致flow失败的时候,尝试将可以执行的job全部执行
  • Concurrent Options

    参数名 作用
    skip execution 如果已经有flow的实例在运行了就放弃执行
    run concurrently 同一个flow的实例并行运行
    pipeline 同一个flow的实例按照流水线方式并行执行,所谓流水执行就是相同job或者job子节点穿行
  • Flow Parameters

    参数名 作用
    exec/conf/global.properties 对所有job有效
    exec/plugin/jobtypes/common.properties 对所有job类型有效
    exec/plugin/jobtypes/{jobtype-name}/plugin.properties 对统一个job类型有效
    项目包中.properties文件 同级或子目录job有效
    flow parameters 同一个flow有效
    .job 只对本job才有效