azkaban job配置

a) Job类型

所有的job都需要一个知道那个他们如何去执行的type。一般的,有这样四种job类型:java、command、javaprocess和pig。

Property

Require?

Meaning

type

required

Job类型:java、command、javaprocess或pig

每个类型都有多种选项,如下描述。

i. command jobs

命令行jobs本质上是作为单独进程执行的Unix命令。任何输出都要以标准输出或标准错误写入到日志当中。如果一个job完成时退出代码为零则代表执行成功,若非零则失败。

azkaban web动态传参,command job可以通过${变量名}获取该参数。

ii. javaprocess jobs

Java process jobs 是一个方便启动java程序的容器。它等价于从命令行执行一个class的main方法。下面介绍在javaprocess jobs中的可用属性:

env.property可以通过程序获取环境变量获得。

iii. pig jobs

这个job类型会通过Grunt运行pig脚本。下面介绍pig jobs的可用属性:

iv. java jobs

Java jobs是一个带有run()方法的java类,例如。Java class不必要实现任何接口。Azkaban会充分利用在下面class中定义的方法:

在使用日志的时候log4j需要为job名称设置一个logger name。

Azkaban提供了一个可以为适当的job日志发出消息的log4j appender。

b) Job锁

在Azkaban中有三种类型的锁:permit、read.lock和write.lock。

i. Permits

Permit锁是用于限制对一个资源的并发访问。例如:如果你想保证访问特定数据库一次不超过4个job,你可以建立一个有四个permit的池并且每个job需要得到一个permit才可运行。Perimits的数量可以在job目录下的 .property 文件中的属性当中设置。

Permit job的数量必须通过job.permits这个job参数设置提供才可运行。所有的permits会在job结束或失败时立即释放。

ii. Read and Write 锁

Azkaban支持位资源设置Read/Write locks。一个常见的用例就是锁定一个在HDFS中的文件修改的权限。例如:当你有许多job在读一个文件,这时有一个job想重建它,你就要确保在别的job读它的时候你不重建这个文件。读者不会妨碍其他读者并且允许任意数量的读者。无论怎样,都只能允许有一个作者,并且在开始写的时候,所有的读者必须执行完毕。

这些所必须通过read.lock和write.lock下面定义参数进行设置:

c) Job 目录布局

Job 文件是以 .job 结尾的文件。可以再 .properties 文件中添加额外属性。 一个属性可以引用其它属性,例如:

一个常见的需求就是要支持在许多环节当中部署单独一个job并且这些环境都需要一些不同的特殊配置。为了支持这一点,Azkaban将job的所有配置分层设置。一个job可以继承定义在它所部署环境顶级目录的任意属性。为了避免在job添加一些与环境相关的属性(如:主机名或端口号),这里要设置一个定义在全局属性文件中的例如${some.url}的变量。这个全局属性文件可以放置在job需要运行的环境中,不需要随着job重新部署。

d) 其它标准Job属性

许多属性都是通过框架提供给各种类型的job。

下面是一些可以被添加给任意job的属性说明:

e) Azkaban系统属性

 

转载于:https://my.oschina.net/u/2000675/blog/792968

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值