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。
#test.job
type=command #job类型为command
command=echo "hello world" #command用来执行命令
这段job是执行一个用来打印hello world的命令的。输出的内容会显示在Azkaban的Web UI中。
PS:标准输出和标准错误都会写到log中,可以在Web UI中查看。
创建一个流程:
一个流程是一个依赖其他job的job。其他依赖项经常会运行在这个流程job之前。
#this is flow bar.job
type=command
dependencies=test
command=echo bar
这个job依赖于之前的test.job
在Azkaban中,type值得是运行的类型,command指的是一条Linux命令,同时Azkaban还支持python,java等直接运行,也就可以是hadoop的shell。
一个流程也可以作为一个节点嵌入到其他job文件中,形成嵌入流
type=flow
flow.name=bar
这样嵌入到了另一个job中去
一个简单的例子
文件test.sh
#!/bin/bash
echo "hello world"
文件aztest.job
# aztest.job
type=command
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:
start.job
type=command
command=echo "start execute"
test.job
type=command
command=echo "Hello World"
sleep.job
type=command
dependencies=test, start
finish.job
type=command
dependencies=sleep
有着四个job文件组成的为一个流,我们可以看到流的组成方式为job相互依赖的,将该Flow上传上去之后,Azkaban会将该流里的job以图的形式展示出来。
PS:Azkaban在执行完毕之后说的成功和失败,指的是job文件的成功和失败,并不是job文件所执行的其他文件失败与否。
发送邮件
Azkaban为我们的提供了任务执行的job结果成功失败的邮件提示。
Azkaban为我们提供了3种执行发送消息的选择,分别为失败了发送邮件,失败发送短信和成功发送邮件。可以进行相关设置在对应的时候发送相关信息。
Azkaban使用简单笔记的更多相关文章
- mybatis-config.xml简单笔记
mybatis-config.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ...
- applicationContext.xml简单笔记
applicationContext.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <bean ...
- Python学习笔记2-flask-sqlalchemy 简单笔记
flask-sqlalchemy 简单笔记 字数 阅读 评论 喜欢 flask-sqlalchemy SQLAlchemy已经成为了python世界里面orm的标准,flask是一个轻巧的web框架, ...
- Android_简单笔记一
入门学习Android的简单笔记(已经安装好了开发环境ADT) 一.关于 AndroidManifest.xml文件 1. android:icon和android:label定义了应用程序安装后显示 ...
- 【Android】Fragment的简单笔记
被虐了,做某公司笔试时,发现自己连个Fragment的生命周期都写不详细.平时敲代码,有开发工具的便利,有网上各大神的文章,就算忘了也很容易的可以查到,但当要自己不借助外界,却发现自己似乎对该知识点并 ...
- Innodb 锁 (简单笔记)
看过很多innodb锁的文章,已经明白的就不写了,简单做个笔记 Innodb 锁的兼容性: 1.意向锁和意向锁之间都是兼容的 2.X(排他锁)与任何锁都是不兼容的 3.排他意向锁 IX 于S锁是不 ...
- 使用Git简单笔记
这里只是作为简单的笔记整理,第一次使用的推荐先看一下廖大的教程,内容很多很细,可以边看边练.看不懂的地方先记着.争取七七八八看下来. ================================= ...
- azkaban的简单使用
简单使用 create job 右上角 project创建成功 创建job并上传至该project [root@localhost ~]# cat command.job #command.job t ...
- awk命令分析日志的简单笔记
awk是一个文本分析工具,可以用来进行流量日志分析 之前无意中看到了这个命令,简单记一下笔记 ,在打线下的时候可能会有用 awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gaw ...
随机推荐
- 天气正好,hello world!
两个多月,稀里糊涂的回来了,内心很迷茫,回来一周了,明知道还需要有一大堆东西需要去学,但是却找不到之前学习的状态,在寝室,在实验室,看着自己一向不喜欢的电视剧,无目的的逛着淘宝,刷着头条和知乎,就这么 ...
- Ch2. Loop Structure
Ex Input some integers and output their min, max and average values (keep three decimal places). It ...
- IBM WebSphere ESB入门指南
[TOC] 第一章 ESB介绍 本博客介绍一款ESB产品,IBM WebSphere ESB.ESB(Enterprise Service Bus)也即企业服务总线.ESB有很多产品,IBM的IBM ...
- 初识 ActiveMQ
其实算不上初识了,工作一年来一直都有接触 mq 相关的东西.但是,从来都是粘贴复制别人的配置代码,却从未认真系统的学习过它,现在线上用 mq 的项目出问题了,老板在后面拿枪指着呢,不得不好好研究下了. ...
- springmvc 之 DispatcherServlet
DispatcherServlet说明 使用Spring MVC,配置DispatcherServlet是第一步. DispatcherServlet是一个Servlet,所以可以配置多个Dispat ...
- 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)
编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...
- Tomcat7的热部署
所谓热部署就是在tomcat不停机的情况下,将新的war包放上去,达到服务不中断,用户无察觉的目的,实现的原理很简单,这里做下记录,以便后期查看. 1.1 安装tomcat7 略 1.2 在tomca ...
- Normalize.css源码注释翻译&浏览器css兼容问题的理解
版本v5.0.0源码地址: https://necolas.github.io/normalize.css/5.0.0/normalize.css 翻译版: /*! normalize.css v5. ...
- hibernate in List查询条件 sum求和使用参考
@Override public Integer getSumZongShuByidList(List<String> idList){ Integer zongshu = 0; Stri ...
- workerman例子无法工作
现象 workerman已经正常启动,但是按照官网写的例子或者下载的demo无法工作,例如页面打不开,socket连接失败等 解决方法 一般这种workerman启动没报错,但是无法打开页面或者无法连 ...