开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情
什么是Azkaban
Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程。它的配置是通过简单的 key:value 对的方式,通过配置中的 Dependencies 来设置依赖关系。
Azkaban 使用. job 配置文件建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪用户的工作流。
下载地址:azkaban.github.io/downloads.h…
Azkaban的特点
1、易于使用的Web界面。
可以通过Web界面上传任务,配置任务与任务之间的关系,实现工作流调度。
2、模块化和可插拔的插件机制。
Azkaban有一个Web服务器和Executor服务器,Web模块负责任务的上传、监控、展示,Executor模块负责执行对应的任务。
兼容各种工作类型,并支持自定义工作类型,通过插件的方式配置。
3、认证和授权。
给某个工作流程添加了权限,那么只能被某个用户所看到。
4、能够杀死并重启工作流。
5、有邮件提醒功能。
Azkaban的架构
1、AzkabanWebServer:AzkabanWebServer 是整个 Azkaban 工作流系统的主要管理者, 它用户登录认证、负责 project 管理、定时执行工作流、跟踪工作流执行进度等一系列任务。
2、AzkabanExecutorServer:负责具体的工作流的提交、执行,它们通过 mysql 数据库来协调任务的执行。
3、关系型数据库(MySQL):存储大部分执行流状态,AzkabanWebServer 和AzkabanExecutorServer 都需要访问数据库。
执行流程图: