【工作流任务调度系统--Azkaban】

Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

现有的两个工作流任务调度系统。知名度比较高的应该是Apache Oozie,但是其配置工作流的过程是编写大量的XML配置,而且代码复杂度比较高,不易于二次开发。另外一个应用也比较广泛的调度系统是Airflow,但是其开发语言是Python。

Azkaban的原因基于以下几点:

提供功能清晰,简单易用的Web UI界面

提供job配置文件快速建立任务和任务之间的依赖关系

提供模块化和可插拔的插件机制,原生支持command、Java、Hive、Pig、Hadoop

基于Java开发,代码结构清晰,易于二次开发

Azkaban有两种部署方式:solo server mode 和 cluster server mode。

solo server mode(单机模式):该模式中webServer和executorServer运行在同一个进程中,进程名是AzkabanSingleServer。可以使用自带的H2数据库或者配置mysql数据。该模式适用于小规模的使用。

cluster server mode(集群模式):该模式使用MySQL数据库,webServer和executorServer运行在不同进程中,该模式适用于大规模应用。

Azkaban2新功能:

1、Web UI

2、简单工作流上传

3、更容易设置job的依赖关系

4、调度工作流

5、权限设置

6、Kill和restart工作流

7、模块化和插件化

8、日志和设计工作流和job

猜你喜欢

转载自gaojingsong.iteye.com/blog/2358126