Azkaban使用简单笔记

官方文档:http://azkaban.github.io/

Azkaban主要的组成:
1. 关系型数据库——MySQL
2. AzkabanWebServer
3. AzkabanExcutorServer

使用MySQL存储状态,AzkabanWebServer和AzkabanExcutorServer访问数据库。
AzkabanWebServer主要管理者Azkaban,主要进行了项目管理、身份验证、调度和监控执行。并且为用户界面。

使用方法:
登录Azkaban环境登录账号和密码之后将会看到一个项目列表界面。

点击创建项目就可以创建安新的项目,创建名称可以第一次命名之后不能再次改变,项目描述可以改变。创建好项目之后,就会进入项目界面,如果没有相关按钮,则说明用户没有相关权限,现在为一个空项目。

上传项目,点击Upload就可以上传项目,项目可以上zip文件,zip里需要包含*.job文件和其他需要运行的job。Job名称必须唯一。

创建流程:
Job为一条在Azkaban中运行的进程。这些Job可以依赖于其他Job。一组Job和他们的所依赖构成了Flow
先创建job文件,文件后缀为*.job。

1 #test.job
2 type=command #job类型为command
3 command=echo "hello world"    #command用来执行命令

这段job是执行一个用来打印hello world的命令的。输出的内容会显示在Azkaban的Web UI中。
PS:标准输出和标准错误都会写到log中,可以在Web UI中查看。

创建一个流程:
一个流程是一个依赖其他job的job。其他依赖项经常会运行在这个流程job之前。

1 #this is flow bar.job
2 type=command
3 dependencies=test
4 command=echo bar

这个job依赖于之前的test.job

在Azkaban中,type值得是运行的类型,command指的是一条Linux命令,同时Azkaban还支持python,java等直接运行,也就可以是hadoop的shell。

一个流程也可以作为一个节点嵌入到其他job文件中,形成嵌入流

type=flow
flow.name=bar

这样嵌入到了另一个job中去

一个简单的例子
文件test.sh

1 #!/bin/bash
2 echo "hello world"

文件aztest.job

1 # aztest.job
2 type=command
3 command=sh test.sh

文件zatest.properties

user.to.proxy=Hadoop

将这三个文件打包为zip包:

zip aztestlh.zip aztest.job aztest.properties test.sh

然后上传文件到Azkaban

上传完成值后就可以看到相关信息了

点击Execute Flow就可以运行

运行成功之后,图的底色会变成绿色:

查看日志信息可以看到我们之前的shell脚本输出的内容:

运行job的另一个方式就是定时,也就类似于cron,一个Azkaban项目就是定时脚本执行的调度器。

一个Flow的例子:
定义多个job以及job之间的依赖就可以组成flow。定义依赖可以使用dependencies参数就可以了。例如创建了4个job:

 1 start.job
 2 type=command
 3 command=echo "start execute"
 4 test.job
 5 type=command
 6 command=echo "Hello World"
 7 sleep.job
 8 type=command
 9 dependencies=test, start
10 finish.job
11 type=command
12 dependencies=sleep

有着四个job文件组成的为一个流,我们可以看到流的组成方式为job相互依赖的,将该Flow上传上去之后,Azkaban会将该流里的job以图的形式展示出来。

PS:Azkaban在执行完毕之后说的成功和失败,指的是job文件的成功和失败,并不是job文件所执行的其他文件失败与否。

发送邮件
Azkaban为我们的提供了任务执行的job结果成功失败的邮件提示。

Azkaban为我们提供了3种执行发送消息的选择,分别为失败了发送邮件,失败发送短信和成功发送邮件。可以进行相关设置在对应的时候发送相关信息。

时间: 2024-12-17 15:04:54

Azkaban使用简单笔记的相关文章

applicationContext.xml简单笔记

applicationContext.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://

mybatis-config.xml简单笔记

mybatis-config.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <

jQuery的简单笔记

html css javaScript Ajax jQuery Java servlet jsp jdbc mysql oracle struts spring hibernate jdpm tomcat jUnit Ant Hadoop linux unix android sql server jQuery的简单笔记//使用JQuery输出    /*     * jquery对象:需要用"$"来修饰     *      * jquery获取页面标签:$()来包裹,通过"

Unity3d中SendMessage 用法简单笔记

Unity3d中SendMessage 用法简单笔记 Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastMessage ("函数名",参数,SendMessageOptions)  //自身和子Object的ScriptSendMessageUpwards ("函数名",参数,SendMessageOptions)  //自

Innodb 锁 (简单笔记)

看过很多innodb锁的文章,已经明白的就不写了,简单做个笔记 Innodb 锁的兼容性: 1.意向锁和意向锁之间都是兼容的 2.X(排他锁)与任何锁都是不兼容的 3.排他意向锁 IX 于S锁是不兼容的 4.剩下的锁都是兼容的 三种锁 record lock gap lock next-key lock = record + gap 判断锁一定要加上隔离级别,不同级别锁的情况不同 对于Innodb 一般只需要考虑RR 和 RC 隔离级别即可 RR 三种锁 RC 可以认为只有record锁,但是当

Python BeautifulSoup 简单笔记

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

azkaban的简单使用

简单使用 create job 右上角 project创建成功 创建job并上传至该project [[email protected] ~]# cat command.job #command.job type=command command=echo 'hello azkaban' [[email protected] ~]# [[email protected] ~]# zip -r command.zip command.job adding: command.job (deflated

UI渲染回顾简单笔记

UI渲染的简单过程: CPU,GPU,显示器协同工作,CPU 中计算显示内容,比如视图的创建.布局计算.图片解码.文本绘制等,然后将计算结果提交给GPU,由 GPU 进行变换.合成.渲染.随后 GPU 会把渲染结果提交到帧缓冲区去,随后等待下一次 VSync(垂直同步信号) 到来时,视频控制器会逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显示.由于垂直同步的机制,如果在一个 VSync 时间内,CPU 或者 GPU 没有完成内容提交,则那一帧就会被丢弃,等待下一次机会再显示,而这时显示

Python爬虫简单笔记

Python2.7里内置了很多非常有用的库,它在我电脑上的位置在/usr/lib/python2.7中. 写个基本的爬虫要用到的库有urllib.urllib2.cookielib.sgmllib和re,下面先分别简单介绍下一些文件的信息和相关函数——具体的真的是建议阅读源码,网上找的资料反而不及它直观(但先了解个大概总是好的),但sgmllib除外.先看一段代码吧. opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie