Azkaban的使用

一、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结尾的文本文件就行了。比如:

[java]  view plain  copy
  1. # foo.job  
  2. type=command  
  3. command=echo foo  
如果是多个job并且有依赖关系,可以使用dependencies参数指定依赖关系。如:

[java]  view plain  copy
  1. # bar.job  
  2. type=command  
  3. dependencies=foo  
  4. 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/qq_35703919/article/details/77836930

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值