官方文档: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种执行发送消息的选择,分别为失败了发送邮件,失败发送短信和成功发送邮件。可以进行相关设置在对应的时候发送相关信息。

转载于:https://www.cnblogs.com/Summer7C/p/7212607.html

Azkaban使用简单笔记相关推荐

  1. ES6 -- 简单笔记总结

    文章目录 ES6 - 简单笔记总结 JSON 严格模式 箭头函数编写简洁的匿名函数 高阶箭头函数 设置函数的默认参数 rest 操作符 与 函数参数一起使用 spread 运算符展开数组项 使用解构赋 ...

  2. True FFS内核编程(简单笔记)

    True FFS内核编程(简单笔记) 2006-08-22 19:22 True FFS内核编程 1 格式化FLASH 即使FLASH没有和块设备驱动绑定,也可对其进行格式化. tffsDevForm ...

  3. 大数据单机学习环境搭建(12)Azkaban的简单使用

    专题:大数据单机学习环境搭建和使用 1.登录和密码修改 2.新建工程 2.1新建工程 2.2创建zip文件 2.3添加文件到项目 3.任务执行 3.1立即执行 3.2.设置定时任务 4.依赖任务建立 ...

  4. jToken与JArray简单笔记

    jToken与JArray简单笔记 //=============string outhtml = string.Empty;int error = HttpWebHelp.HttpHelp(&quo ...

  5. bigpipe php,php 使用 bigpipe技术 简单笔记

    php 使用 bigpipe技术 简单笔记 php 使用 bigpipe技术 简单笔记 1.配置nginx 关闭proxy_buffering 为 off ,关闭 gzip压缩,  设置 fastcg ...

  6. git clone 一些简单笔记

    自使用了git后,就彻底喜欢上了,深深体会到了自由的感觉,记录一些简单的笔记和使用心得,仅供留迹,以备后查... git clone 命令参数: usage: git clone [options] ...

  7. 【Android】Fragment的简单笔记

    被虐了,做某公司笔试时,发现自己连个Fragment的生命周期都写不详细.平时敲代码,有开发工具的便利,有网上各大神的文章,就算忘了也很容易的可以查到,但当要自己不借助外界,却发现自己似乎对该知识点并 ...

  8. webpack简单笔记

    本文简单记录学习webpack3.0的笔记,已备日后查阅.节省查阅文档时间 安装 可以使用npm安装 //全局安装 npm install -g webpack //安装到项目目录 npm insta ...

  9. 重学JavaSE —— Map、Set、Iterator(迭代器) 简单笔记

    前言 本文是学习笔记,也有配套源码实例,主要是针对本人对Map.Set.Iterator进行的简单学习和笔记总结. 本文源代码已上传至Gitee:https://gitee.com/da-ji/ful ...

最新文章

  1. 怎么快速学好php,学习编程的快速高效方法
  2. tf.nn.softmax_cross_entropy_with_logits()笔记及交叉熵
  3. id_Tech5_challenges--siggraph09
  4. chrome浏览器崩溃_不只是您:Chrome浏览器在Windows 10的2018年4月更新中崩溃
  5. 一文说通C#中的异步迭代器
  6. 大学只待成追忆,只是工作已半年,2016再见
  7. Vue生命周期通俗理解
  8. c语言lua读文件,file-io – 在Lua中逐行读取文件
  9. HDU 6312.Game-博弈-签到题 (2018 Multi-University Training Contest 2 1004)
  10. java final修饰的数组_Java基于final修饰数据过程解析
  11. 病房管理系统c语言设计,病房呼叫系统设计与仿真
  12. 利用modem发传真
  13. win10文件夹加密_Win10系统自带加密文件夹的两种方法
  14. PTA甲级模拟第六弹:1156-1159
  15. 2019 | 开启新的堕落生活
  16. 智能急救站入驻公共场所,搭起生命安全新防线
  17. socket接口调用 java_Java中socket接口调用(示例代码)
  18. JAVA课程(零)——课前准备 环境的搭建
  19. 【Mysql】Communications link failure,The last packet sent successfully to the server was 0 millisecond
  20. winhex文件有写保护怎么修改也改变了该怎么办

热门文章

  1. centos开放端口以及Telnet测试端口
  2. jvm加载class原理
  3. python 解压zip文件_Python 解压缩文件详解
  4. C库函数 - strcspn()
  5. 数据结构(六)---队列的链式存储的实现---java版
  6. Golang 规则引擎原理及实战
  7. Mysql Innodb LBCC详解
  8. 100篇精选算法技术文章收藏
  9. 为什么说 GraphQL 可以取代 REST API?
  10. [转] getBoundingClientRect判断元素是否可见