李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
01.Azkaban概述
Leefs
2022-04-20 PM
1346℃
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
NLP
4
标签云
队列
LeetCode刷题
Filter
Spark RDD
JavaSE
微服务
Golang基础
ClickHouse
Sentinel
随笔
链表
查找
HDFS
持有对象
数据结构
MySQL
二叉树
机器学习
Zookeeper
JVM
pytorch
Hadoop
ajax
Thymeleaf
稀疏数组
Beego
设计模式
Scala
Nacos
Kafka
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭