【Azkaban】Azkaban入门解析

在这里插入图片描述

(图片来源于网络,侵删)


一、Azkaban概述

1.简介

Azkaban是由Linkedin开源的一个批量工作流任务调度器
用于在一个工作流内以一个特定的顺序运行一组工作和流程
Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流

2.工作流调度系统

2.1 为什么需要工作流调度系统?

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

  • shell脚本程序,java程序,mapreduce程序、hive脚本等

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

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

例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天都要对其进行处理,处理步骤如下所示:

  • 1).通过Hadoop先将原始数据上传到HDFS上(HDFS的操作)
  • 2).使用MapReduce对原始数据进行清洗(MapReduce的操作)
  • 3).将清洗后的数据导入到hive表中(hive的导入操作)
  • 4).对Hive中多个表的数据进行JOIN处理,得到一张hive的明细表(创建中间表)
  • 5).通过对明细表的统计和分析,得到结果报表信息(hive的查询操作)

在这里插入图片描述

2.2 常见工作流调度系统

1)简单的任务调度:直接使用crontab实现;
2)复杂的任务调度:开发调度平台或使用现成的开源调度系统,比如ooize、azkaban等

2.3 ooize和azkaban特性对比

下面的表格对上述四种hadoop工作流调度器的关键特性进行了比较,尽管这些工作流调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在显著的区别,在做技术选型的时候,可以提供参考
在这里插入图片描述

3.功能特点

1、兼容任何版本的hadoop

2、提供功能清晰,简单易用的Web UI界面

3、简单的工作流的上传

4、提供job配置文件快速建立任务和任务之间的依赖关系

5、工作流调度

6、提供模块化和可插拔的插件机制,原生支持command、Java、Hive、Pig、Hadoop

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

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

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

10、项目工作区

11、工作流和任务的日志记录和审计

12、基于Java开发,代码结构清晰,易于二次开发

4.原理架构

在这里插入图片描述

1、关系型数据库(MySQL): 存储元数据,如项目名称、项目描述、项目权限、任务状态、SLA规则等,AzkabanWebServerAzkabanExecutorServer都需要访问数据库

2、AzkabanWebServer:AzkabanWebServer是整个Azkaban工作流系统的主要管理者,对外提供web服务,使用户可以通过web页面管理。职责包括项目管理、权限授权、任务调度、监控executor

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

二、Azkaban的安装

1、Azkaban有两种部署方式:

  • solo server mode (单机模式)
    该模式中webServer和executorServer运行在同一个进程中,进程名是AzkabanSingleServer。可以使用自带的H2数据库或者配置mysql数据。该模式适用于小规模的使用
  • cluster server mode (集群模式)
    该模式使用MySQL数据库,webServer和executorServer运行在不同进程中,该模式适用于大规模应用

2、Azkaban安装方式:

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值