一、独立部署
通过以下命令来启动Azkaban:
注: 这个部分为绝对路径
然后即可用浏览器访问http://localhost:8081 (若将azkaban部署到服务器上,则 localhost为服务器的IP地址)
二、在Tomcat中部署
在解压缩后的dist目录下有一个预置的war文件。这个文件可以使用标准方法在Tomcat或任何servlet容器当中部署。利用这种方式部署,一定要在环境变量当中设置工作目录的$AZKABAN_HOME.
不论是通过Tomcat部署还是从命令行进行部署,访问http://localhost:8081都会展示出下面的页面。
三、Jobs
注: 本文是由本人翻译+原创,如需引用请注明出处:http://blog.csdn.net/zhang__bing/article/details/8669747a) 创建一个简单的job
Job是一个你想在Azkaban上运行的程序,它可以通过用户界面被停掉、被安排到以后去运行,或者作为其他job的依赖。每一次Azkaban执行job的时候,它都会记录下这个job运行的是成功还是失败、运行的时间、和运行过程中的日志。
Azkaban job是一个在你的job目录(即目录)下后缀名为.job的文件。例如:foo.job声明出一个名为foo的job。Job的熟悉以key=value的形式设置到job文件当中。
下面就是一个job文件内容的例子:
这个job有两个属性:type和command。Type是所有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-job的job,可以用以下命令:
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的父级目录当中的任何属性。例如:
在这里声明了三个job:baz、foo和bar。Foo和bar允许它们自己声明的属性内容,再加上system.properties和my_flow.properties中的属性内容。而baz则只有访问定义在它自己的job文件和system.properties当中的属性的权限。
分层配置允许许多人构建和配置工作流,将多个部署路径完全分开,但是仍然会共享在顶级目录中配置的相同参数属性。
h) 其他信息
关于job类型、调度jobs、报警等更多的信息会在documentation部分进行说明。