Azkaban作业参数使用介绍

Azkaban作业参数使用介绍Azkaban 中的参数详解参数传递是调度字体工作流运行时非常重要的一部分 工作流的执行 单个作业的执行 多个工作流之间的依赖执行 历史任务重算 都涉及到参数传递和同步 azkaban 的工作流中的参数可以分为如下几个类型 1 AzkabanUI 页面输入参数 2 环境变量参数 3 job 作业文件中定义的参数 4 工作流的用户定义的属性文件 上游作业传递给下游的参数 5 工作

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223834.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:20
下一篇 2026年3月17日 下午1:20


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号