Azkaban

1. 工作流调度器概述

1.1. 为什么需要工作流调度系统

一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序,java程序,mapreduce程序、hive脚本等

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

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

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

1、通过Hadoop先将原始数据同步到HDFS上;

2、借助MapReduce计算框架对原始数据进行转换,生成的数据以分区表的形式存储到多张Hive表中;

3、需要对Hive中多个表的数据进行JOIN处理,得到一个明细数据Hive大表;

4、将明细数据进行复杂的统计分析,得到结果报表信息;

5、需要将统计分析得到的结果数据同步到业务系统中,供业务调用使用。

1.2. 工作流调度实现方式

简单的任务调度:直接使用linux的crontab来定义

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

1.3. 常见工作流调度系统

市面上目前有许多工作流调度器,在hadoop领域,常见的工作流调度器有Oozie, Azkaban,Cascading,Hamake等

1.4. 各种调度工具特性对比

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

1.5. Azkaban与Oozie对比

对市面上最流行的两种调度器,给出以下详细对比,以供技术选型参考。总体来说,ooize相比azkaban是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器azkaban是很不错的候选对象。

2. Azkaban介绍

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

它有如下功能特点:

Web用户界面

方便上传工作流

方便设置任务之间的关系

调度工作流

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

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

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

项目工作区

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

2.1. Azkaban组成部分

mysql服务器:用于存储项目、日志或者执行计划之类的信息

web服务器:使用Jetty对外提供web服务,使用户可以通过web页面方便管理

executor服务器:负责具体的工作流的提交、执行

2.1. 各个元素及其关系

Azkaban界面中的主要元素有三个,分别是project、job与flow

project可以理解为某个项目,其项目中包含了许多需要执行的任务,即为job,各个job之间形成依赖关系,便组成了工作流flow

2.2. 创建 job和flow

在Azkaban系统的web界面中有创建project的交互,可以通过界面创建一个project,但是Azkaban没有创建job与flow的界面,这一点很讨厌。于是需要编写以.job为扩展名的文件然后上传,才能在系统中形成job任务
---------------------
作者:Zzreal
来源:CSDN
原文:https://blog.csdn.net/Zonzereal/article/details/79093009
版权声明:本文为博主原创文章,转载请附上博文链接!

工作流调度器之Azkaban的更多相关文章

  1. 工作流调度器azkaban(以及各种工作流调度器比对)

    1:工作流调度系统的作用: (1):一个完整的数据分析系统通常都是由大量任务单元组成:比如,shell脚本程序,java程序,mapreduce程序.hive脚本等:(2):各任务单元之间存在时间先后 ...

  2. 工作流调度器azkaban

    为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 各任务单元之间存在时间先后及前后依赖关系 为了很 ...

  3. 工作流调度系统Azkaban的简介和使用

    1 概述 1.1 为什么需要工作流调度系统 l 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 l 各任务单元之间存在时间 ...

  4. 【Hadoop离线基础总结】工作流调度器azkaban

    目录 Azkaban概述 工作流调度系统的作用 工作流调度系统的实现 常见工作流调度工具对比 Azkaban简单介绍 安装部署 Azkaban的编译 azkaban单服务模式安装与使用 azkaban ...

  5. azkaban工作流调度器及相关工具对比

    本文转载自:工作流调度器azkaban,主要用于架构选型,安装请参考:Azkaban安装与简介,azkaban的简单使用 为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: ...

  6. Azkaban工作流调度器

    Azkaban工作流调度器 在Hadoop领域常用的工作流调度系统 Oozie,Azkaban,Cascading,Hamake等等. 性能对比: 安装: 创建ssl配置 keytool -keyst ...

  7. Azkaban 工作流调度器

    Azkaban 工作流调度器 1 概述 1.1 为什么需要工作流调度系统 a)一个完整的数据分析系统通常都是由大量任务单元组成,shell脚本程序,java程序,mapreduce程序.hive脚本等 ...

  8. 工作流调度器azkaban2.5.0的安装和使用

    为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 各任务单元之间存在时间先后及前后依赖关系 为了很 ...

  9. Hadoop工作流引擎之Azkaban与Oozie对比(四)

    Azkaban是什么?(一) Azkaban的功能特点(二) Azkaban的架构(三) 不多说,直接上干货! http://www.cnblogs.com/zlslch/category/93883 ...

随机推荐

  1. Windows10关闭自动更新方法

    你在为windows10自动更新而烦恼吗?下面教你一招如何关闭自动更新

  2. webpack中使用WebpackDevServer实现请求转发

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  3. MySQl 进阶一 基本查询及练习

    知识点及练习 USE myemployees; #.查询表中的单个字段 SELECT last_name FROM employees; #.查询表中多个字段 #.查询全部 SELECT * FROM ...

  4. 0005SpringBoot中用Junit测试实体类中绑定yml中的值

    1.编写SpringBoot的引导类 package springboot_test.springboot_test; import org.springframework.boot.SpringAp ...

  5. c++ string类基本使用

    初始化用法 #include <iostream> #include "string" using namespace std; void main() { strin ...

  6. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) B2. TV Subscriptions (Hard Version)

    链接: https://codeforces.com/contest/1247/problem/B2 题意: The only difference between easy and hard ver ...

  7. vmware 安装centos7 阿里云镜像 虚拟机

    一.资源准备: 1.vmware软件下载: 百度自行下载安装 2.阿里云镜像地址:https://opsx.alibaba.com/mirror 1).镜像下载步骤: 点击计入centos: 这里直接 ...

  8. paramiko获取主机信息

    import re import paramiko host="192.168.4.88" user = "root" password = " cl ...

  9. 【安卓基础】WebView开发优化基础

    最近工作很忙,不仅要抽空进行管理,还有开发任务在身,幸好有一些规划进行指导,所以还能顺利解决问题.在管理和技术上面,我认为技术是硬实力,管理是软实力,自己需要多点时间花在技术上. 回归正题,在项目中的 ...

  10. electron 打包成桌面运用

    最近在学习nodejs,得知Electron是通过将Chromium和Node.js合并到同一个运行时环境中,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一门技术.对于之前一直从 ...