美文网首页
azkaban参数

azkaban参数

作者: wong小尧 | 来源:发表于2020-09-30 17:12 被阅读0次

    在mz工作时接触到了已经非常完善的数据平台,基本复刻了腾讯teg数平,大大简化了很多工作。
    后续更换工作到DY,这里平台并没有集成太多功能,大部分是分开使用不同的工具解决的。

    例如数据任务的工作调度,任务的依赖,是使用azkaban工作流来完成的。

    common参数配置

    除了type,command,decpendencies三个参数外,还有如下一些保留参数可以为每个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成功或失败都发送的邮箱,用逗号隔开

    Runtime 属性

    这些属性在job运行期间自动被添加.

    参数 说明
    azkaban.job.attempt job重试次数,从0开始增加
    azkaban.job.id 运行的job name
    azkaban.flow.flowid 运行的job的flow name
    azkaban.flow.execid flow的执行id
    azkaban.flow.projectid 工程id
    azkaban.flow.projectversion project上传的版本
    azkaban.flow.uuid flow uuid
    azkaban.flow.start.timestamp flow start的时间戳
    azkaban.flow.start.year flow start的年份
    azkaban.flow.start.month flow start 的月份
    azkaban.flow.start.day flow start 的天
    azkaban.flow.start.hour flow start的小时
    azkaban.flow.start.minute start 分钟
    azkaban.flow.start.second start 秒
    azkaban.flow.start.millseconds start的毫秒
    azkaban.flow.start.timezone start 的时区

    案例

    流程图
    config:
        # 重试次数
        retries: 10
        # 重试间隔 毫秒
        retry.backoff: 60000
        # 任务失败发送邮件地址
        failure.emails: 
        xxxxx@qq.com
    
        script.root.dir: /home/dataw/md
        #script.root.dir: /home/dataw/md-develop
    
        script.project.dir: ${script.root.dir}/dm/recall/host
    
        # mark_finished参数 分区值
        mark_finished: sh -x ${script.root.dir}/ak_cfg/common_scripts/mark_job_finished.sh ${azkaban.flow.execid} ${azkaban.job.id} 
        # is_finished参数 项目名 flow名字 job名 分区值
        is_finished: sh -x ${script.root.dir}/ak_cfg/common_scripts/is_job_succeed.sh
    
        #  jexl 表达式
        YYYYMMDD: $(new("org.joda.time.DateTime").minusDays(1).toString("yyyyMMdd"))
        YYYYMMDDHH: $(new("org.joda.time.DateTime").minusHours(1).toString("yyyyMMddHH"))
        YYYYMMDDHHMM: $(new("org.joda.time.DateTime").minusMinutes(0).toString("yyyyMMddHHmm"))
    
        # 自定义命令
        cmd: bash -x ${script.project.dir}
        # 输出 一个输入输出pars ,二个以上输出 pars1 pars2  parsn
        build.pars: python3 ${script.root.dir}/ak_cfg/common_scripts/build_pars.py
    
    nodes:
        - name: start
          type: command
          config:
              command: ${build.pars}  ${YYYYMMDD}
          dependsOn:
    
    
        - name: odps_to_dwd_is_finished
          type: command
          config:
              command: ${is_finished}  odps_to_dwd odps_to_dwd end ${pars}
          dependsOn:
              - start
    
        - name: dm_gid_search_recall
          type: command
          config:
              command: ${cmd}/dm_gid_search_recall.sh ${pars}
          dependsOn:
              - start
              - odps_to_dwd_is_finished
    
        - name: end
          type: command
          config:
              command: ${mark_finished} ${pars}
          dependsOn:
              - start
              - dm_gid_search_recall
    

    这里可以设置日期参数,传参数进去重跑任务

    相关文章

      网友评论

          本文标题:azkaban参数

          本文链接:https://www.haomeiwen.com/subject/maqvyktx.html