Azkaban 简介
一、Azkaban 介绍
1.1 背景
一个完整的大数据分析系统,必然由很多任务单元 (如数据收集、数据清洗、数据存储、数据分析等) 组成,所有的任务单元及其之间的依赖关系组成了复杂的工作流。复杂的工作流管理涉及到很多问题:
- 如何定时调度某个任务?
- 如何在某个任务执行完成后再去执行另一个任务?
- 如何在任务失败时候发出预警?
- ......
面对这些问题,工作流调度系统应运而生。Azkaban 就是其中之一。
1.2 功能
Azkaban 产生于 LinkedIn,并经过多年生产环境的检验,它具备以下功能:
- 兼容任何版本的 Hadoop
- 易于使用的 Web UI
- 可以使用简单的 Web 页面进行工作流上传
- 支持按项目进行独立管理
- 定时任务调度
- 模块化和可插入
- 身份验证和授权
- 跟踪用户操作
- 支持失败和成功的电子邮件提醒
- SLA 警报和自动查杀失败任务
- 重试失败的任务
Azkaban 的设计理念是在保证功能实现的基础上兼顾易用性,其页面风格清晰明朗,下面是其 WEB UI 界面:
![](https://raw.githubusercontent.com/heibaiying/BigData-Notes/master/pictures/azkaban-web.png)
二、Azkaban 和 Oozie
Azkaban 和 Oozie 都是目前使用最为广泛的工作流调度程序,其主要区别如下:
功能对比
- 两者均可以调度 Linux 命令、MapReduce、Spark、Pig、Java、Hive 等工作流任务;
- 两者均可以定时执行工作流任务。
工作流定义
- Azkaban 使用 Properties(Flow 1.0) 和 YAML(Flow 2.0) 文件定义工作流;
- Oozie 使用 Hadoop 流程定义语言(hadoop process defination language,HPDL)来描述工作流,HPDL 是一种 XML 流程定义语言。
资源管理
- Azkaban 有较严格的权限控制,如用户对工作流进行读/写/执行等操作;
- Oozie 暂无严格的权限控制。
运行模式
- Azkaban 3.x 提供了两种运行模式:
- solo server model(单服务模式) :元数据默认存放在内置的 H2 数据库(可以修改为 MySQL),该模式中
webServer
(管理服务器) 和executorServer
(执行服务器) 运行在同一个进程中,进程名是AzkabanSingleServer
。该模式适用于小规模工作流的调度。 - multiple-executor(分布式多服务模式) :存放元数据的数据库为 MySQL,MySQL 应采用主从模式进行备份和容错。这种模式下
webServer
和executorServer
在不同进程中运行,彼此之间互不影响,适合用于生产环境。
- solo server model(单服务模式) :元数据默认存放在内置的 H2 数据库(可以修改为 MySQL),该模式中
- Oozie 使用 Tomcat 等 Web 容器来展示 Web 页面,默认使用 derby 存储工作流的元数据,由于 derby 过于轻量,实际使用中通常用 MySQL 代替。
三、总结
如果你的工作流不是特别复杂,推荐使用轻量级的 Azkaban,主要有以下原因:
- 安装方面:Azkaban 3.0 之前都是提供安装包的,直接解压部署即可。Azkaban 3.0 之后的版本需要编译,这个编译是基于 gradle 的,自动化程度比较高;
- 页面设计:所有任务的依赖关系、执行结果、执行日志都可以从界面上直观查看到;
- 配置方面:Azkaban Flow 1.0 基于 Properties 文件来定义工作流,这个时候的限制可能会多一点。但是在 Flow 2.0 就支持了 YARM。YARM 语法更加灵活简单,著名的微服务框架 Spring Boot 就采用的 YAML 代替了繁重的 XML。
更多大数据系列文章可以参见 GitHub 开源项目: 大数据入门指南
转载于:https://www.cnblogs.com/heibaiying/p/11441362.html
Azkaban 简介相关推荐
- azkaban简介及azkaban部署、原理和使用介绍
azkaban简介及azkaban部署.原理和使用介绍 azkaban简介 Azkaban是一套简单的任务调度服务,整体包括三部分webserver.dbserver.executorserver ...
- Azkaban简介与使用
一.Azkaban简介 Azkaban是由Linkedin开源的一个批量工作流任务调度器.用于在一个工作流内以一个特定的顺序运行一组工作和流程.Azkaban定义了一种KV文件格式来建立任务之间的依赖 ...
- Azkaban简介及安装教程
前言: 最近在实际工作中玩到了Azkaban,虽然之前有简单的接触,但是真正用到的时候,才能体会到这个工具的实用性有多强.下面就写个系列文章来记录下azkaban从简介及安装配置再到简单使用的一个过程 ...
- Azkaban简介和使用
概述 为什么需要工作流调度系统 l 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 l 各任务单元之间存在时间先后及前后依 ...
- Azkaban简介及使用
一.Azkaban概述Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性问题.我们有需要按顺序运行的工作,从ETL工作到数据分析产品.特点:1)给用户提供了 ...
- Azkaban入门(启动一个Simple Example)
Azkaban简介 azkaban是一个开源的任务调度系统 Azkaban是一套简单的任务调度服务,整体包括三部分webserver.dbserver.executorserver. 开发语言为Jav ...
- 数据调度组件:基于Azkaban协调时序任务执行
一.Azkaban概述 1.任务时序 在数据服务的业务场景中,很常见的业务流程就是日志文件经过大数据分析,再向业务输出结果数据:在该过程中会有很多任务需要执行,并且很难精准把握任务执行的结束时间,但是 ...
- Azkaban的囚徒——Azkaban安装和介绍
文章目录 Azkaban简介 Azkaban安装 Azkaban配置 azkaban.properties azkaban-users.xml Azkaban简介 为什么需要工作流调度器? 1.一个完 ...
- Azkaban入门简介
体系架构 - WebServer :暴露Restful API,提供分发作业和调度作业功能: - ExecServer :对WebServer 暴露 API ,提供执行作业的功能: - MySQL : ...
最新文章
- python while循环语句-Python中的while循环语句怎么用?
- jquery学习资源
- TabLayout让Fragment在ViewPager中的滑动切换更优雅
- Android SDK安装与环境配置
- 移动Web—CSS为Retina屏幕替换更高质量的图片
- 《计算复杂性:现代方法》——第0章 记 号 约 定 0.1 对象的字符串表示
- 公司里面用的iTextSharp(教程)---关于PDF的属性设置
- 视频播放器+控制器--封装
- 我的2017OKR - 年中回顾
- 驱动人生安装驱动计算机无法启动,驱动人生解决声卡驱动问题 驱动人生针对电脑不出声解决方案...
- 罗技鼠标 903 底部按键是干嘛的,板载模式
- C语言 摄氏度与华氏度转换
- Exchange2013中POP3和IMAP4
- 团队组成五个基本要素_团队构成的五大要素
- python爬取选股宝(https://xuangubao.cn)之二度尝试
- java 生成csv文件_Java生成CSV文件实例详解
- python基于flask_sockets实现WebSocket
- Frida Internal - Part 1: 架构、Gum 与 V8
- YOLOv3源码解析2-数据预处理Dataset()
- geek_询问How-To Geek:如何监视带宽使用情况?