Azkaban理论知识:简介-产生背景-架构-部署模式-与Oozie对比

文章目录

  • 一、简介
  • 二、产生背景
  • 三、架构
  • 四、部署模式
  • 五、与Oozie的对比
  • 六、若任务挂了怎么办?

一、简介

Azkaban 是一个任务调度器,用于 运行Hadoop作业的 批处理工作流 的 作业调度。

二、产生背景

大数据的计算、分析和处理,一般都是由多个任务单元组成的,且多个任务单元之间存在强依赖关系。
上游任务成功执行完毕,下游任务 拿到上游的结果后 才能开始执行。
为了保证处理结果的有效性和精确性,就必须让任务严格按照上下游关系有序的、顺序的执行。
最简单的解决方式是:事先预估好每个模块执行所需要的时间,以时间段规划执行顺序。
但是,当面对突然激增的数据量时,某个单元未必能按时完成,就会对下游任务造成影响。
为了更好的结果这个问题,工作流调度系统应用而生,Azkaban就是其中一种。

三、架构

Azkaban理论知识:简介-产生背景-架构-部署模式-与Oozie对比_第1张图片
MySQL服务器: 存储元数据。
WebServer : 对外提供Web服务,用户可通过Web页面进行管理。
ExecutorServer:负责具体的工作流的提交、执行。

四、部署模式

单机模式
WebServer 和 ExecutorServer 运行在同一个进程中,进程名为 AzkabanSingleServer。
使用自带的H2数据库。
一般用来学习和测试。

远程模式
WebServer 和 ExecutorServer 运行在不同的进程中。
使用 MySQL数据库。

集群或分布式模式
WebServer 和 ExecutorServer 运行在不同的机器中,拥有多个ExecutorServer 。
使用 MySQL数据库。

五、与Oozie的对比

Oozie (训象人)
是一个基于 工作流引擎的开源框架,调度的是MapReduce,需要部署到 Java Servlet 中运行。
主要用于定时调度,多任务之间按照逻辑顺序进行调度。
是一个重量级的任务调度系统,虽然功能全面,但是部署和配置麻烦。

Azkaban
用于 在一个 工作流内 以特定的顺序执行一组工作和流程。
介于Oozie和Crontab之间的工具,安全性弱于Oozie。

若出现失败的情况,Azkaban会丢失所有工作流,但Oozie 可以继续运行。

六、若任务挂了怎么办?

不论任务运行成功还是失败,都会通过邮件、钉钉、短信、企业微信、电话等途径发出通知。
若任务失败了,主要解决方案是重新跑

你可能感兴趣的:(Azkaban,大数据)