Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
azkaban有如下功能特点:
1)Web用户界面
2)方便上传工作流
3)方便设置任务之间的关系
4)调度工作流
5)认证/授权(权限的工作)
6)能够杀死并重新启动工作流
7)模块化和可插拔的插件机制
8)项目工作区
9)工作流和任务的日志记录和审计
azkaban调度的任务类型包括:
1)shell脚本
2)java程序
3)MR程序
4)spark程序
5)hive的sql
6)python脚本
7)sqoop任务
Azkaban的优势
1)提供功能清晰,简单易用的Web UI界面
2)提供job配置文件快速建立任务和任务之间的依赖关系
3)提供模块化和可插拔的插件机制,原生支持command、Java、Hive、Pig、Hadoop
4)基于Java开发,代码结构清晰,易于二次开发
Azkaban有两种部署方式:solo server mode 和 cluster server mode:
1.solo server mode(单机模式):该模式中webServer和executorServer运行在同一个进程中,进程名是AzkabanSingleServer。可以使用自带的H2数据库或者配置mysql数据。该模式适用于小规模的使用。
2.cluster server mode(集群模式):该模式使用MySQL数据库,webServer和executorServer运行在不同进程中,该模式适用于大规模应用。