Azkaban 1. 架构介绍


1. Azkaban 介绍

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

它有如下功能特点:

  1. 兼容任何的Hadoop版本
  2. Web用户界面
  3. 方便上传工作流
  4. 方便设置任务之间的关系
  5. 调度工作流
  6. 认证/授权(权限的工作)
  7. 能够杀死并重新启动工作流
  8. 模块化和可插拔的插件机制
  9. 项目工作区
  10. 工作流和任务的日志记录和审计
  11. 成功与失败任务进行邮件提醒

2. Azkaban 架构

Azkaban 架构图

Azkaban是一种类似于Oozie的工作流控制引擎,可以用来解决多个Hadoop(或Spark等)离线计算任务之间的依赖关系问题。

也可以用其代替crontab来对周期性任务进行调度,并且更为直观,可靠,同时提供了美观的可视化管理界面。

3. Azkaban 组件

Azkaban由三部分构成:

3.1 MySQL

Azkaban 将大多数状态信息都存于MySQL中,Azkaban Web Server 和 Azkaban Executor Server也需要访问DB。

3.2 Azkaban Web Server

Azkaban WebServer 是整个Azkaban的主要管理者,提供了供用户使用的Web UI,包括用户登录、project的管理、认证、调度以及对工作流执行过程的监控等功能。

3.3 Azkaban Executor Server

Azkaban Executor Server 负责具体工作流的提交、执行、监控,这些操作都通过MySQL来协调。之所以将WebServer和ExecutorServer分开,主要是因为在某个任务流失败后,可以更方便的将重新执行。而且也更有利于Azkaban系统的升级。

4. Azkaban 支持的任务类型

  1. Shell脚本

  2. Java程序

  3. MapReduce程序

  4. Spark程序

  5. Hive的sql

  6. Python脚本

  7. Sqoop任务


文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
  目录