一、概述

缺乏、安全感 2023-06-02 10:38 60阅读 0赞

1、什么是 Azkaban

Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的 key:value 对的方式,通过配置中的 Dependencies 来设置依赖关系。Azkaban 使用 job 配置文件建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。

2、为什么需要工作流调度系统

1) 一个完整的数据分析系统通常都是由大量任务单元组成:

Shell 脚本程序, Java 程序, MapReduce 程序、 Hive 脚本等

2) 各任务单元之间存在时间先后及前后依赖关系

3) 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;

例如,我们可能有这样一个需求,某个业务系统每天产生 20G 原始数据,我们每天都

要对其进行处理,处理步骤如下所示:

1) 通过 Hadoop 先将原始数据上传到 HDFS 上(HDFS 的操作);

2) 使用 MapReduce 对原始数据进行清洗(MapReduce 的操作);

3) 将清洗后的数据导入到 hive 表中(hive 的导入操作) ;

4) 对 Hive 中多个表的数据进行 JOIN 处理, 得到一张 hive 的明细表(创建中间表) ;

5) 通过对明细表的统计和分析,得到结果报表信息(hive 的查询操作) ;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3MyOTQ4NzgzMDQ_size_16_color_FFFFFF_t_70

3、Azkaban 特点

1) 兼容任何版本的 hadoop

2) 易于使用的 Web 用户界面

3) 简单的工作流的上传

4) 方便设置任务之间的关系

5) 调度工作流

6) 模块化和可插拔的插件机制

7) 认证/授权(权限的工作)

8) 能够杀死并重新启动工作流

9) 有关失败和成功的电子邮件提醒

4、常见工作流调度系统

1)简单的任务调度:直接使用 crontab 实现;

2)复杂的任务调度:开发调度平台或使用现成的开源调度系统,比如 ooize、 azkaban 等

5、Azkaban 的架构

Azkaban 由三个关键组件构成:

20191004165246566.png

1) AzkabanWebServer:AzkabanWebServer 是整个 Azkaban 工作流系统的主要管理者,它用户登录认证、 负责 project 管理、 定时执行工作流、跟踪工作流执行进度等一系列任务。

2) AzkabanExecutorServer: 负责具体的工作流的提交、执行,它们通过 mysql 数据库来协调任务的执行。

3) 关系型数据库(MySQL) : 存储大部分执行流状态, AzkabanWebServer 和 AzkabanExecutorServer 都需要访问数据库。

发表评论

表情:
评论列表 (有 0 条评论,60人围观)

还没有评论,来说两句吧...

相关阅读

    相关 概述

    1、什么是 Azkaban Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置

    相关 Cesium 概述 ()

    Cesium是一个基于JavaScript的开源框架,可用于在浏览器中绘制3D的地球,并在其上绘制地图(支持多种格式的瓦片服务),该框架不需要任何插件支持,但是浏览器必须支持W

    相关 Maven():概述

    Maven:     Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven中央库:     http

    相关 Git():概述

    Git概述:     Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Lin

    相关 Mycat(概述

    目录 1、功能介绍 2、原理 3、应用场景 4、Mycat 中的概念 4.1 数据库中间件 4.2 逻辑库(schema) 4.3 逻辑表 4.3.1 逻辑表

    相关 Spring()概述

    对于Java应用开发来说,Spring再熟悉不过了。起初Spring是一个降低程序复杂度的Java框架,解决代码层级之间的松耦合问题,在SpringBoot阶段,SpingCl

    相关 Kafka概述

    一、消息队列 > 客户端A给客户端B发送数据,若是直接发的话,客户端A给客户端B需要同步。 > > 例如, > >   1)  A在给B发送数据的时候,B挂掉了,此时