本文主要是介绍Azkaban理论知识:简介-产生背景-架构-部署模式-与Oozie对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、简介
- 二、产生背景
- 三、架构
- 四、部署模式
- 五、与Oozie的对比
- 六、若任务挂了怎么办?
一、简介
Azkaban 是一个任务调度器,用于 运行Hadoop作业的 批处理工作流 的 作业调度。
二、产生背景
大数据的计算、分析和处理,一般都是由多个任务单元组成的,且多个任务单元之间存在强依赖关系。
上游任务成功执行完毕,下游任务 拿到上游的结果后 才能开始执行。
为了保证处理结果的有效性和精确性,就必须让任务严格按照上下游关系有序的、顺序的执行。
最简单的解决方式是:事先预估好每个模块执行所需要的时间,以时间段规划执行顺序。
但是,当面对突然激增的数据量时,某个单元未必能按时完成,就会对下游任务造成影响。
为了更好的结果这个问题,工作流调度系统应用而生,Azkaban就是其中一种。
三、架构
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理论知识:简介-产生背景-架构-部署模式-与Oozie对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!