Azkaban简介与使用

标签: geek | 发表时间:2017-07-25 08:00 | 作者:
出处:http://itindex.net/relian

一、Azkaban简介

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


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


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

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

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


常见工作流调度系统


在hadoop领域,常见工作流调度系统有:Oozie, Azkaban,Cascading,Hamake

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

特性

Hamake

Oozie

Azkaban

Cascading

工作流描述语言

XML

XML (xPDL based)

text file with key/value pairs

Java API

依赖机制

data-driven

explicit

explicit

explicit

是否要web容器

No

Yes

Yes

No

进度跟踪

console/log messages

web page

web page

Java API

Hadoop job调度支持

no

yes

yes

yes

运行模式

command line utility

daemon

daemon

API

Pig支持

yes

yes

yes

yes

事件通知

no

no

no

yes

需要安装

no

yes

yes

no

支持的hadoop版本

0.18+

0.20+

currently unknown

0.18+

重试支持

no

workflownode evel

yes

yes

运行任意命令

yes

yes

yes

yes

Amazon EMR支持

yes

no

currently unknown

yes

其中比较常用的为Azkaban和Oozie。

Azkaban功能特点

1 Web用户界面

2 方便上传工作流

3 方便设置任务之间的关系

4 调度工作流

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

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

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

8  项目工作区

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


二、Azkaban使用


      Azkaban有web界面,输入 https://localhost:8443(注意是https)可以访问Azkaban的用户界面。如图:


首页有四个菜单
  • projects:最重要的部分,创建一个工程,所有flows将在工程中运行。
  • scheduling:显示定时任务
  • executing:显示当前运行的任务
  • history:显示历史运行任务

2.1 创建工程

         一个工程包含一个或多个flows,一个flow包含多个job。job是你想在azkaban中运行的一个进程,可以是简单的linux命令,可是java程序,也可以是复杂的shell脚本,当然,如果你安装相关插件,也可以运行插件。一个job可以依赖于另一个job,这种多个job和它们的依赖组成的图表叫做flow。点击右上角的create project,在弹出的窗口中填写工程名和描述即可创建工程。

2.2 创建job

    创建job很简单,只要创建一个以.job结尾的文本文件就行了。比如:

# foo.job
type=command
command=echo foo
如果是多个job并且有依赖关系,可以使用dependencies参数指定依赖关系。如:

# bar.job
type=command
dependencies=foo
command=echo bar
这样job就创建好了。

2.3 将工作流打包上传

      将上面两个job打成zip包,在页面上点击update上传。上传之后如图:


2.4 运行

       之后点击绿色的Execute Flow,弹出窗口:

左边的选项卡依次为:

Flow view:流程视图。可以禁用,启用某些job
Notification:定义任务成功或者失败是否发送邮件
Failure Options:定义一个job失败,剩下的job怎么执行
Concurrent:并行任务执行设置
Flow Parametters:参数设置。

左下角的Schedule是设置调度时间,右下角的Execute为直接运行,点击Execute。运行之后在Graph可以看到:

在job List中可以看到个job运行的起始终止时间。

这样工作流的调度就执行完了,Azkaban的使用还是挺简单的吧。

转载请注明: http://blog.csdn.net/weiyongle1996/article/details/76072814            

相关 [azkaban 简介] 推荐:

Azkaban简介与使用

- - IT瘾-geek
       Azkaban是由Linkedin开源的一个 批量工作流任务调度器. 用于在一个工作流内以一个特定的顺序运行一组工作和流程. Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流. 简而言之就是一个工作流调度系统. 因为一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序,java程序,mapreduce程序、hive脚本等.

Flask-Babel 简介

- yinseny - python.cn(jobs, news)
本文有一个格式好看一点,并且有语法高亮的版本放在 readthedocs,欢迎浏览. 本文是原创,不是翻译,不过本文其实是谈翻译的. 话说用 wordpress 的 WYSIWYG 编辑器写这样的文章真痛苦啊,格式一不小心就乱了,本文是用 rst 写成,编译为 html,然后贴到这边来的. 最近用 Flask 给公司做了个小 web 应用,做的时候用英文了,现在要求翻译成中文.

AsciiDoc简介

- dayu - 桃源
AsciiDoc 是一种简单的基于纯文本的文档生成工具, 与它类似的还有 reStructuredText, Markdown. 说是生成文档, 其实它可以将纯文本文件转换成各种类型, 比如:. Man Page (示例). Graphviz 图形 (示例). 使用AsciiDoc进行文档编写最著名的恐怕是Git官方的 Git User’s Manual (我表示对于初学者很难看懂), 这篇博客也是通过AsciiDoc生成, 文后会附上本文的原始代码以便参考..

ABAP简介

- - 博客园_首页
中文名称:高级企业应用编程语言. 英文全称:Advanced Business Application Programming. 德语全称:Allgemeiner Berichtsaufbereitungsprozessor(通用报表预处理器). 概述:一种高级编程语言,起源于20世纪80年代,由德国软件公司SAP开发,主要用作SAP的编程,现行版本为ABAP/4,同时支持面向过程和面向对象.

json简介

- - ITeye博客
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成. 它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集. JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式.

[转]amanda 简介

- - 小鸥的博客
    安装mysql数据库是会发现三个用户 mysql 、postmyql 、amanda,其中amanda是什么呢.   Amanda 是最早出现的开源备份 软件. 它的名字来自Maryland大学. Amanda的意思是高级Maryland 硬盘归档器..   Amanda通过 操作系统上 一些自带的备份工具,例如tar(Unix/linux)、zip(Windows)来实现备份的计划,自动化和跟踪等功能.

[转]HBase简介

- - 小鸥的博客
   Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能. 其目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表. Hbase可以直接使用本地文件系统或者Hadoop作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥Hbase处理大数据量等功能,需要使用Hadoop作为文件系统.

Learning to Rank 简介

- - 博客园_首页
  去年实习时,因为项目需要,接触了一下Learning to Rank(以下简称L2R),感觉很有意思,也有很大的应用价值. L2R将机器学习的技术很好的应用到了排序中,并提出了一些新的理论和算法,不仅有效地解决了排序的问题,其中一些算法(比如LambdaRank)的思想非常新颖,可以在其他领域中进行借鉴.

CSRF简介

- - 互联网 - ITeye博客
转自: http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html.   CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF.

storm简介

- - 搜索技术博客-淘宝
伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样、更加便捷,同时对于信息的时效性要求也越来越高. 举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当然是这个宝贝马上就可以被卖家搜索出来、点击、购买啦,相反,如果这个宝贝要等到第二天或者更久才可以被搜出来,估计这个大哥就要骂娘了.