Azkaban 3.73.1 使用简介
本文上接《Azkaban 3.73.1 集群搭建(Multiple Executor)》,对Azkaban的使用做简单说明
目录
简介
AzkabanWebServer中的三个主要元素:project、job、flow
- project:工程/项目
- job:任务,project中包含的需要执行的任务
- flow:工作流,由各个job之间的依赖关系所组成
1. 登录
- 因为使用了SSl所以是 https
- host为启动WebServer服务的机器ip
- port为azkaban-web/conf/azkaban.properties中配置的jetty.ssl.port=8443
- 账号密码为 azkaban-web/conf/azkaban-users.xml 中配置的

2. 创建工程
首页四个重要的菜单
| 菜单 | 备注 |
|---|---|
| projects | 工程,最重要的部分,所有flows都在工程中运行 |
| scheduling | 显示定时任务 |
| executing | 显示当前运行的任务 |
| history | 显示历史运行任务 |
在“projects”菜单下点击“Create Project”完成创建工程,注意请使用英文,中文会报错


3. 创建job
- web页面中并没有提供创建job的功能
- 需要自行创建以.job为扩展名的文件,并将创其通过web页面上传,才能形成job任务
- 所有的job都需要有一个知道他们如何去执行的type,附:Azkaban Jobtypes 文档
.job文件中常用的参数,如下
参数 备注 dependencies 定义依赖关系,参数值为该job依赖的任务文件名(不包括.job后缀)
如果依赖多个,则以逗号分隔,如:job2,job5retries 任务失败时自动重启的次数 retry.backoff 每一次任务尝试重启时之间等待的毫秒数 working.dir 重新指定任务执行的工作目录,默认为目前正在运行的任务的工作目录 failure.emails 任务失败时的邮件提醒设置,以逗号分隔多个邮箱 success.emails 任务成功时的邮件提醒设置,以逗号分隔多个邮箱 notify.emails 任务无论失败还是成功都邮件提醒设置,以逗号分隔多个邮箱
3.1 创建 .job 文件
使用 command type 举例:
job1
# 文件名:test_1.job
type=command
command=echo "This is a test job, name is test_1."
retries=5
job2
# 文件名:test_2.job
type=command
dependencies=test_1
retries=5
command=echo "This is a test job, name is test_2."
command.1=pwd
command.2=ls –l /tmp
job3
# 文件名:test_3.job
type=command
dependencies=test_1
retries=5
command=echo "This is a test job, name is test_3."
command.1=sh /opt/azkaban/job/test_script.sh
注意:/opt/azkaban/job/test_script.sh 为事先在服务器上写好的脚本,且强烈建议使用这种形式,后期维护时,只需修改此文件内容就可以了
job4
# 文件名:test_4.job
type=command
dependencies=test_2,test_3
retries=5
command=echo "This is a test job, name is test_4."
command.1=netstat -ntlp
job5
# 文件名:test_5.job
type=command
dependencies=test_4
retries=5
command=echo "This is a test job, name is test_5."
command.1=whoami

3.2 打包
压缩所有.job文件到同一个.zip文件中
- 必须是zip压缩文件,当前仅支持zip
- 所有文件必须在压缩包的根目录中,没有子目录

3.3 创建Flow
- 上传打包好的zip文件,进而生成一个Flow
- Flow的名称为最后一个没有依赖的.job文件的文件名
选择工程,直接点击“工程名”

工程页面的三个菜单
| 菜单 | 备注 |
|---|---|
| Flows | 工作流程,有多个job组成 |
| Permissions | 权限管理 |
| Project Logs | 工程日志 |
工程页面的三个按钮
| 按钮 | 备注 |
|---|---|
| Delete Project | 删除该工程 |
| Upload | 上传zip文件,进而生成Flow |
| Download | 下载工程 |
点击“Upload”上传zip


3.4 运行Flow
Flow的三个操作按钮
| 按钮 | 备注 |
|---|---|
| Execute Flow | 配置或执行Flow |
| Executions | Flow的执行记录 |
| Summary | Flow的总结 |
点击“Execute Flow”配置执行该流程

Execute Flow 的几个菜单
| 菜单 | 备注 |
|---|---|
| Flow view | 流程视图,“右键”可以禁用/启用某些job |
| Notification | 定义任务成功或者失败是否发送邮件 |
| Failure Options | 定义一个job失败,剩下的job怎么执行 |
| Concurrent | 并行任务执行设置 |
| Flow Parametters | 参数设置 |
点击左下方的“Schedule”可设置定时执行,下方绿色字体为执行时间的提示

点击右下方“Execute”执行该Flow


“Continue”之后可以直接看到Flow的运行结果,“绿色”成功、“蓝色”执行中、“红色”失败

可查看每一个job的运行日志,如果有报错,也可以直接查看错误日志

首次运行是可能的报错
ERROR [ExecutorServlet] [Azkaban] executor became inactive before setting up the flow 1
azkaban.executor.ExecutorManagerException: executor became inactive before setting up the flow 1

需要手动去激活一下 executor,方式如下:
curl http://${executorHost}:${executorPort}/executor?action=activate

附录
参考
- 官方:https://azkaban.github.io/azkaban/docs/latest/#creating-flows
- https://juejin.im/post/5c8a289151882504715038cc
- https://www.jianshu.com/p/01188607a794
- http://www.jobplus.com.cn/article/getArticleDetail/51461
例子源码
https://github.com/remainsu/azkaban_job
Azkaban 3.73.1 使用简介的更多相关文章
- Azkaban Flow 2.0 使用简介
官方建议使用Flow 2.0来创建Azkaban工作流,且Flow 1.0将被弃用 目录 目录 一.简单的Flow 1. 新建 flow20.project 文件 2. 新建 .flow 文件 3. ...
- Azkaban 3.73.1 集群搭建(Multiple Executor)
一.简介 Azkaban是LinkedIn开源的任务调度框架,采用java编写 Azkaban功能和特点: 任务的依赖处理 任务监控,失败告警 任务流的可视化 任务权限管理 Azkaban具有轻量可插 ...
- Azkaban Condition Flow (条件工作流) 使用简介
本文上接<Azkaban Flow 2.0 使用简介>,对Azkaban Condition Flow (条件工作流) 做简单介绍 目录 目录 条件工作流 介绍 作用 使用方式 支持的运算 ...
- Storm 实战:构建大数据实时计算
Storm 实战:构建大数据实时计算(阿里巴巴集团技术丛书,大数据丛书.大型互联网公司大数据实时处理干货分享!来自淘宝一线技术团队的丰富实践,快速掌握Storm技术精髓!) 阿里巴巴集团数据平台事业部 ...
- 【原创】大数据基础之Azkaban(1)简介、源代码解析
Azkaban3.45 一 简介 1 官网 https://azkaban.github.io/ Azkaban was implemented at LinkedIn to solve the pr ...
- Azkaban 简介
本文简单介绍一下Azkaban及其特点.azkaban是一个开源的任务调度系统,用于负责任务的调度运行(如数据仓库调度),用以替代linux中的crontab. 一.Azkaban是什么? 1.1 A ...
- Azkaban简介及使用
一.Azkaban概述 Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性问题. 我们有需要按顺序运行的工作,从ETL工作到数据分析产品. 特点: 1)给用 ...
- Azkaban简介和使用
概述 为什么需要工作流调度系统 l 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 l 各任务单元之间存在时间先后及前后依 ...
- Azkaban学习之路(一)—— Azkaban 简介
一.Azkaban 介绍 1.1 背景 一个完整的大数据分析系统,必然由很多任务单元(如数据收集.数据清洗.数据存储.数据分析等)组成,所有的任务单元及其之间的依赖关系组成了复杂的工作流.复杂的工作流 ...
随机推荐
- WPF 代码实现动画
<Window x:Class="wpf180709.Window2" xmlns="http://schemas.microsoft.com/win ...
- JS 中click和onclick的区别
1.onclick是绑定事件,告诉浏览器在鼠标点击时候要做什么 2.click本身是方法,作用是触发onclick事件,只要执行了元素的click()方法,就会触发onclick事件
- 【shell】编译脚本
#!/bin/bash #设置环境变量 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export JRE_HOME=${JAVA_HOME}/ ...
- 增加收入的 6 种方式(很多公司的模型是:一份时间卖多次。比如网易、腾讯。个人赚取收入的本质是:出售时间)good
个人赚取收入的本质是:出售时间.从这个角度出发,下面的公式可以描述个人收入: 个人收入 = 每天可售时间数量 * 单位时间价格 * 单位时间出售次数 在这个公式里,有三个要素: 每天可出售的时间数量 ...
- Android零基础入门第34节:Android中基于监听的事件处理
原文:Android零基础入门第34节:Android中基于监听的事件处理 上一期我们学习了Android中的事件处理,也详细学习了Android中基于监听的事件处理,同时学会了匿名内部类形式,那么本 ...
- 类选择器和所作用的标签一起写为什么不起作用? - CSDN博客
原文:类选择器和所作用的标签一起写为什么不起作用? - CSDN博客 HTML代码: css样式: 这不是将样式作用于circle类下的有current类的li标签吗?为什么不起作用? 原因: 选择器 ...
- Delphi 编写ActiveForm窗体工程知识和样例(开发浏览器客户端应用程序)(有详细步骤)
一.基础知识介绍: 1.ActiveForm的基础知识介绍: 在Delphi中,ActiveForm是封装了Delphi Form的一种ActiveX控件.ActiveForm其实是一种标准的Delp ...
- MongoDB数据库和集合的基本操作
非关系型数据库 命令区分大小写:命令结束符为回车(与MySQL不同之处) mongodb配置 sudo service mongodb start mongo mongodb基本概念 集合对应于关系型 ...
- 可以用GetObjectProp来获取对象的属性
原来可以用GetObjectProp来获取对象的属性,还有这用法,哈哈哈哈…… var SL: TStrings; UseDBTools: Boolean;begin SL := nil; if Me ...
- 为什么你有10年经验,但成不了专家?(重复性刻意训练+反馈修正,练习的精髓是要持续地做自己做不好的,太精彩了)真正的高手都有很强的自学能力,老师和教练的最重要作用是提供即时的反馈(莫非我从小到大学习不好的原因在这里?没有单独刻意训练?) good
也许简单看书就是没有刻意训练.更没有反馈,所以没有效果 我倒是想起自己,研究VCL源码的时候,都是自己给自己提问,然后苦思冥想.自己解决问题,然后Windows编程水平果然上了一个台阶.对什么叫做“框 ...