Azkaban的快速搭建

14 篇文章 0 订阅
7 篇文章 0 订阅

 

一、独立部署

通过以下命令来启动Azkaban

注: 这个部分为绝对路径

然后即可用浏览器访问http://localhost:8081 (若将azkaban部署到服务器上,则 localhost为服务器的IP地址)

二、在Tomcat中部署

在解压缩后的dist目录下有一个预置的war文件。这个文件可以使用标准方法在Tomcat或任何servlet容器当中部署。利用这种方式部署,一定要在环境变量当中设置工作目录的$AZKABAN_HOME.

不论是通过Tomcat部署还是从命令行进行部署,访问http://localhost:8081都会展示出下面的页面。

             

三、Jobs

a) 创建一个简单的job

Job是一个你想在Azkaban上运行的程序,它可以通过用户界面被停掉、被安排到以后去运行,或者作为其他job的依赖。每一次Azkaban执行job的时候,它都会记录下这个job运行的是成功还是失败、运行的时间、和运行过程中的日志。

Azkaban job是一个在你的job目录(即目录)下后缀名为.job的文件。例如:foo.job声明出一个名为foojobJob的熟悉以key=value的形式设置到job文件当中。

下面就是一个job文件内容的例子:

这个job有两个属性:typecommandType是所有job必须有的属性,并且它决定了job如何去运行----在这个例子里它代表Unix命令。Command是特定于Unix jobs的属性并且它是一个让Unix命令行去执行的一个属性。Job也可以有额外的属性供自己使用。

我们可以通过用户接口创建一个job,也可以通过点击主页的Create Job按钮来创建。下一个部分将描述如何创建和捆绑一个完整的工作流。也将在多种类型的job和可利用的标准熟悉上提供额外的细节描述。

b) 创建一个工作流

工作流是一个互相依赖的一系列job的集合。有依赖关系的job总是在它依赖的job运行完成之后它自己才可以运行。下面是一个为一个job添加依赖、添加dependencies属性的例子:

c) 部署一个工作流

当在你的桌面上开发一个工作流的时候,你可以随时直接修改job文件,但是它准备好要部署的时候你也许需要把所有的文件包装整理起来。为了支持这样点,Azkaban支持部署包含一组job、额外配置、JAR文件、和任何需要的文件的.zip文件。接下来的例子就展示出了如何创建这样的一个zip文件。

向一个zip文件(如:foobar.zip)中天添加文件。注意:路径中要带有zip文件的名称。这个路径决定了Azkaban将在哪个目录下包装这个zip文件。如果待压缩的zip文件已经存在,则覆盖已有的zip文件。

注:用以上方法创建job、封装zip文件是无法正确的显示出foobar.zip的整个目录结构的,显示效果为下面的方式。

若需要展示正确的效果,需要再本地创建 *.job 文件,然后压缩,通过Upload Job进行上传,则可得到下面的效果:

 

‘bar’’foo’的依赖,并且二者都在’foobar’目录下。

现在执行bar这个job的时候会先执行foo。如果foo执行成功,bar才会运行,否则失败。

d) 运行你的job

因为我们已经在job目录中做了改动,它们会自动部署并等待运行,但这个时候它只会识别 *.job ,然后将所有的这些job显示到default结构下。这个可以通过用户界面来选择正确的job进行工作,并且选择Run(立即运行)或者Schedule(定时执行)

如果你不想使用图形化的用户界面,你也可以从命令行进行启动你的工作流。例如运行一个在job目录()下名为my-jobjob,可以用以下命令:

e) 观察Job

选择一个job,就会跳转到显示job细节信息的页面。在这个页面上,可以重定义job的属性或者创建新的job。你也可以观察到job执行的历史日志和job的执行时间。

f) 工作流

Azkaban可以展示出依赖树,并且可以有两种方式进行展示。

1.   通过View Flow可以查看。

2. 通过History中的View/Restart链接查看。

可以用鼠标移动节点,用鼠标的滚轮改变大小。右键单击节点可以禁用该节点。禁用的节点将淡出,并且作为无操作工作(它们会继续运行,但是什么也不做)

History页面中点击restart,图形界面当中的节点会根据它们的状态进行着色显示。红色代表失败,绿色代码成功,蓝色代表正在运行(或等待运行),灰色代表正在准备。点击Execute将会使工作流立即执行,并且会运行所有被禁用的job。上面的图片代表

g) 分层配置

这种在中存放job属性的简单方法是可以工作的,但是能够处理例如数据库连接或者由于job失败要发出默认通知邮件的分享性属性也是非常重要的。为了支持这个功能,Azkaban允许将属性分割到具有分享性的文档当中。此外,考虑到简单的命名空间,jobs可以继承到job的父级目录当中的任何属性。例如:

在这里声明了三个jobbazfoobarFoobar允许它们自己声明的属性内容,再加上system.propertiesmy_flow.properties中的属性内容。而baz则只有访问定义在它自己的job文件和system.properties当中的属性的权限。

分层配置允许许多人构建和配置工作流,将多个部署路径完全分开,但是仍然会共享在顶级目录中配置的相同参数属性。

h) 其他信息

关于job类型、调度jobs、报警等更多的信息会在documentation部分进行说明。

 

 

注: 本文是由本人翻译+原创,如需引用请注明出处:http://blog.csdn.net/zhang__bing/article/details/8669747

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值