什么是Azkaban?

Azkaban是什么

Azkaban是由Linkedin开源的做批量工作流任务的调度器。在一个工作流内按照特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的相互依赖关系,并且提供了一个易于使用的web用户界面维护与跟踪你的工作流。

Azkaban的功能特点:

web用户界面

方便上传工作流

方便设置任务之间的关系

工作流调度

认证/授权

能够杀死并重新启动工作流

模块化与可插拔的插件机制

项目工作区

工作流与任务的日志记录和审计

Azkaban的核心架构体系

什么是Azkaban?

1)MySQL实例--Azkaban使用MySQL来存储项目和执行(暂只支持MySQL数据库,未来可能会支持更多的数据库)

2)Azkaban Web服务器--Azkaban使用Jetty作为Web服务器,用作控制器和提供Web界面(为什么不同Tomcat?由于Tomcat比较重量级,需要单独部署,这里没有必要)

3)Azkaban执行服务器--Azkaban执行服务器执行提交工作流

Azkaban的三种运行模式

1)solo server mode(这种模式不会用到,了解即可)

H2(存储用H2数据库)

web server和executor server运行在一个进程里

2)two server mode (重点掌握)

MySQL(主从结构,为了避免单点故障)

web server和executor server运行在不同的进程

3)multiple executor mode

MySQL(主从结构)

web server和executor server运行在不同的进程

executor server有多个(避免一个executor server负载过多)