Azkaban作业参数使用介绍

Azkaban中的参数详解

参数传递是调度字体工作流运行时非常重要的一部分,工作流的执行,单个作业的执行,多个工作流之间的依赖执行,历史任务重算,都涉及到参数传递和同步。

azkaban的工作流中的参数可以分为如下几个类型:

1: Azkaban UI 页面输入参数

2: 环境变量参数

3:job作业文件中定义的参数

4:工作流的用户定义的属性文件,上游作业传递给下游的参数

5:工作流运行时产生的系统参数

6:job的common参数

以下是参数类型与其对应的参数范围:

参数类型参数的作用域
UI 页面输入参数 ,即工作流参数flow全局有效
工作流ZIP压缩包中的属性文件flow全局有效,zip文件目录以及子目录有效
工作流运行时参数flow全局有效
环境变量参数flow全局有效
job的common参数job内局部有效
JOB文件中定义的参数job内局部有效
上游作业传递给下游的参数job内局部有效

其中,全局参数,在整个工作流的作业文件配置中,都可以通过 ${参数名} 的方式引用使用。


job配置中的参数

commod参数配置

除了typem,commond,decpendencies三个参数外,还有如下一些保留参数可以为每个job配置

参数说明
retries失败的job的自动重试的次数
retry.backoff重试的间隔(毫秒)
working.dir指定命令被调用的目录。默认的working目录是executions/${execution_ID}目录
env.property指定在命令执行前需设置的环境变量。Property定义环境变量的名称,
因此 env.VAR_NAME=VALUE就创建了一个$VAR_NAME环境变量
并且指定了它的VALUE
failure.emailsjob失败时发送的邮箱,用逗号隔开
success.emailsjob成功时发送的邮箱,用逗号隔开
notify.emailsjob成功或失败都发送的邮箱,用逗号隔开

一个flow的email属性,只会取最后一个job的配置,其他的job的email配置将会被忽略。


单个job的创建

创建job很简单,只要创建一个以.job结尾的文本文件就行了,例如我们创建一个工作,用来打印hello world,名字叫做command.job

#command.job

type=command

command=echo 'hello world'

一个简单的job就创建好了,解释下,type的command,告诉azkaban用unix原生命令去运行,比如原生命令或者shell脚本,当然也有其他类型。

一个工程不可能只有一个job,我们现在创建多个依赖job,这也是采用azkaban的首要目的。


多个command类型多job工作流flow

jobs和它们的依赖组成flow。怎么创建依赖,只要指定dependencies参数就行了。比如导入hive前,需要进行数据清洗,数据清洗前需要上传,上传之前需要从ftp获取日志。

比如定义5个job:

1:o2o_2_hive.job:将清洗完的数据入hive库

2:o2o_clean_data.job:调用mr清洗hdfs数据

3:o2o_up_2_hdfs.job:将文件上传至hdfs

4:o2o_get_file_ftp1.job:从ftp1获取日志

5:o2o_get_file_fip2.job:从ftp2获取日志

彼此之间依赖关系
3依赖4和5,2依赖3,1依赖2,4和5没有依赖关系。

o2o_2_hive.job:

type=command
# 执行sh脚本,建议这样做,后期只需维护脚本就行了,azkaban定义工作流程
command=sh /job/o2o_2_hive.sh
dependencies=o2o_clean_data

o2o_clean_data.job:

type=command
# 执行sh脚本,建议这样做,后期只需维护脚本就行了,azkaban定义工作流程
command=sh /job/o2o_clean_data.sh
dependencies=o2o_up_2_hdfs

o2o_up_2_hdfs.job:

type=command
#需要配置好hadoop命令,建议编写到shell中,可以后期维护
command=hadoop fs -put /data/*
#多个依赖用逗号隔开
dependencies=o2o_get_file_ftp1,o2o_get_file_ftp2

o2o_get_file_ftp1.job:

type=command
command=wget "ftp://file1" -O /data/file1

o2o_get_file_ftp2.job:

type=command
command=wget "ftp:file2" -O /data/file2

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值