什么是Azkaban?
Azkaban是什么
Azkaban是由Linkedin开源的做批量工作流任务的调度器。在一个工作流内按照特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的相互依赖关系,并且提供了一个易于使用的web用户界面维护与跟踪你的工作流。
Azkaban的功能特点:
web用户界面
方便上传工作流
方便设置任务之间的关系
工作流调度
认证/授权
能够杀死并重新启动工作流
模块化与可插拔的插件机制
项目工作区
工作流与任务的日志记录和审计
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负载过多)