Azkaban包括三个重要组件:
1)关系数据库(目前仅支持mysql)
2)web管理服务器-AzkabanWebServer
3)执行服务器-AzkabanExecutorServer
Azkaban使用MySQL来存储它的状态信息,Azkaban Executor Server和Azkaban Web Server均使用到了MySQL数据库。
AzkabanExecutorServer使用到了数据库的地方:
获取project的信息
执行工作流
存储工作流运行日志
如果一个工作流在不同的执行器上运行,它将从DB中获取状态。
AzkabanWebServer使用到了数据库的地方:
Project管理
跟踪工作流执行进度
访问历史工作流的运行信息
定时执行工作流任务
记录所有sla规则
AzkabanWebServer:
AzkabanWebserver是整个Azkaban工作流系统的主要管理者,它负责project管理、用户登录认证、定时执行工作流、跟踪工作流执 行进度等一系列任务。同时,它还提供Web服务操作的接口,利用该接口,用户可以使用curl或其他ajax的方式,来执行azkaban的相关操作。
操作包括:
用户登录、
创建project、
上传workflow、
执行workflow、
查询workflow的执行进度、
杀掉workflow等一系列操作
且这些操作的返回结果均是json的格式。
AzkabanExecutorServer:
之所以将AzkabanWebServer和AzkabanExecutorServer分开,主要是因为在某个任务流失败后,可以更方便的将重新执行。而且也更有利于Azkaban系统的升级。