李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
01.Azkaban概述
Leefs
2022-04-20 PM
788℃
0条
### 前言 **为什么需要工作流调度器** + 一个完整的数据分析系统通常都是由大量任务单元组成: shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等; + 各任务单元之间存在**时间先后**及**前后依赖关系**; + 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。 ![01.Azkaban概述02.png](https://lilinchao.com/usr/uploads/2022/04/1982729765.png) #### 常见任务调度工具 + **crontab** (Linux 自带命令,使用方式简单,适合不是非常复杂的场景,比如只按照时间来调度) + **oozie**( Hadoop 自带的开源调度系统,使用方式比较复杂,适合大型项目场景) + **azkaban**(一个开源调度系统,使用方式比较简单,适合中小型项目场景) + **企业定制开发**(企业自研的调度系统,不开源) ### 一、Azkaban简介 Azkaban是由Linkedin开源的一个**批量工作流任务调度器**。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种key:value文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。 + **官网地址**:https://azkaban.github.io/ ![01.Azkaban概述01.png](https://lilinchao.com/usr/uploads/2022/04/1829654594.png) ### 二、Azkaban特点 + 提供功能清晰,简单易⽤的Web UI界⾯ + 提供job配置⽂件快速建⽴任务和任务之间的依赖关系 + 提供模块化和可插拔的插件机制,原⽣⽀持command、Java、Hive、Pig、Hadoop + 基于Java开发,代码结构清晰,易于⼆次开发 + 能够杀死并重新启动工作流 + 有关失败和成功的电子邮件提醒 ### 三、Azkaban 与 Oozie 对比 Azkaban 和 Oozie 是市面上最流行的两种调度器。总体来说,Ooize 相比 Azkaban 是一个重量级的任务调度系统,功能全面,但部署和使用也更复杂,比较适合作为大型项目的任务调度系统。而 Azkaban 相对而言,配置和使用更为简单,能够满足常见的任务调度,比较适合作为中小型项目的任务调度系统。 **Azkaban 和 Oozie 详情对比如下:** + **功能** 两者均可以调度 mapreduce,pig,java,脚本工作流任务 两者均可以定时执行工作流任务 + **工作流定义** Azkaban 使用 Properties 文件定义工作流 Oozie 使用 XML 文件定义工作流 + **工作流传参** Azkaban 支持直接传参 Oozie 支持参数和 EL 表达式 + **定时任务** Azkaban 的定时执行任务是基于时间的 Oozie 的定时执行任务基于时间和输入数据 + **资源管理** Azkaban 有较严格的权限控制,如用户对工作流进行读/写/执行等操作 Oozie 暂无严格的权限控制 + **工作流执行** Azkaban 有两种运行模式,分别是单机模式和集群模式 Oozie 作为工作流服务器运行,支持多用户和多工作流 + **工作流管理** Azkaban 支持浏览器以及 ajax 方式操作工作流 Oozie 支持命令行、HTTP REST、Java API、浏览器操作工作流 ### 四、Azkaban原理架构 ![01.Azkaban概述03.png](https://lilinchao.com/usr/uploads/2022/04/3025662226.png) **说明** + **AzkabanWebServer**:AzkabanWebServer是整个Azkaban工作流系统的主要管理者,负责用户登录认证、project管理、定时执行工作流、跟踪工作流执行进度等一系列任务。 + **AzkabanExecutorServer**:负责具体的工作流的提交、执行,它们通过mysql数据库来协调任务的执行。 **将 Executor 单独分开有几个好处:** - 在多 Executor 模式下可以方便扩展 - 工作流在某一个 Executor 挂掉,可以在另一个 Executor 上重试 - 可以滚动升级,从而不影响调度 + **关系型数据库(MySQL)**:存储大部分执行流状态,AzkabanWebServer和AzkabanExecutorServer都需要访问数据库。 ***附参考文章链接:*** *https://www.cnblogs.com/binbingg/p/14922750.html*
标签:
Azkaban
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1972.html
上一篇
【转载】ZooKeeper详细介绍
下一篇
02.Azkaban单机版安装教程
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
Python
ajax
Spring
Thymeleaf
锁
持有对象
Beego
随笔
ClickHouse
Hive
Kafka
Jenkins
BurpSuite
递归
Redis
Java阻塞队列
设计模式
VUE
Nacos
NIO
GET和POST
Hadoop
序列化和反序列化
Linux
Ubuntu
DataWarehouse
MyBatis-Plus
国产数据库改造
Kibana
查找
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞