Azkaban - 流式调度框架

为什么要有Azkaban?

在数据业务场景,对于数据的处理往往是分阶段处理,而不同的阶段可能采用了不同的技术框架去完成这个业务需求,且可能在不同的阶段要干不同的事。

炒饭(锅) à 吃饭(碗) à 筷子(动手)

要吃饭就要等炒饭先用锅炒好,要用筷子动手吃饭就要等碗里装了饭,这是一个流水线式的过程,如果用设定时间的方式,到了什么时候就拿完去装饭,但如果今天兼职的人特别多,那么炒的饭必然就多了,时间也长了,但是设定时间到了,还没炒好,可是有一堆人挤在厨房喊要饭,问题就出现了。

于是有的人会想,如果有一个监督人帮我去这个监控、通知、控制好整个流程,那样多好啊,厨房就不会给天天催了,也不会发生拥挤的情况。

      小结:一个完整的数据分析系统通常是由大量的任务单元组成,Shell脚本、Java程序、MapReduce程序、Hive脚本等等,各个任务单元之间存在时间先后及前后依赖关系。

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

      简单的工作流调度:Liunx的crontab来定义

      复杂的工作流调度:Oozie、Azakaban等。。。

 

 

主流几款工作流调度框架

特性

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?

      Azkaban是Linkedin开源的一个批量工作流任务调度器,用于在一个工作流内以特定的顺序运行一组工作和流程。

      Azkaban定义了以Key-Value的文件格式来建立任务之间的依赖关系,并提供了一个易于使用的web用户界面维护和跟踪工作流任务。

 

 

 

功能特点

Web用户界面

简单的上传工作流

简单的设置任务关系

      调度工作流

      认证/授权(授权)

      能够杀死并重启工作流

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

      项目工作区

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

      内置任务类型支持command和java

      ……

 

 

运行方式

solo server mode(executor server和web server部署在同一台节点)

multi server mode(executor server和web server可以部署在不同的节点)

 

 

案例

hello.job

$ vi hello.job

# hello.job

type=command

command=echo ‘hello’

 

world.sh

$ vi world.sh

#!/bin/bash

echo ‘world’

 

world.job

$ vi world.job

# world.job

type=command

dependencies=hello

command=sh world.sh

 

mr.job

$ vi mr.job

# mr.job

type=command

dependencies=world

command=/opt/module/hadoop-2.5.0-cdh5.3.6/bin/hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount /user/creeper /azkout

 

打包(zip) à 上传、执行

使用注意事项

1.时区

2.必须用Https访问,需要配置SSL

有兴趣可以加QQ群讨论:963022008

 

猜你喜欢

转载自blog.csdn.net/Su_Levi_Wei/article/details/85213096