这篇文章主要介绍了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中定义的方法:
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下面定义参数进行设置:
e) Azkaban系统属性
感谢你能够认真阅读完这篇文章,希望小编分享的“azkaban中job配置的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。