Azkaban配置Work Flow案例实操
Work Flow案例实操
目录
- Work Flow案例实操
- 1. Yarm语法简介
- 2. HelloWorld案例
- 3. JavaProcess案例
- 4. 作业依赖案例
- 5. 自动失败重试案例
- 6. 手动失败重试案例
1. Yarm语法简介
2.0 azkaban支持 properties配置文件,也支持yml配置文件!
3.0 azkaban默认支持yml配置文件!
yarm语法:
yml: 简洁,适合表示层级关系复杂的数据!
- yml主要使用缩进表示层级关系,一旦下一行出现了缩进,表示下一行是上一行的子属性!
- 缩进时,如果缩进的距离一致,层级一致!
- 大量使用空格,缩进时不能使用tab,K-V之间必须使用空格!
K-V类型表示方法:
k:(空格)v
对象类型数据,map(k-v)
jack:name: jackage: 20
单行:
jack: {name: jack,age: 20}
数组类型数据,List,Set
fruits:- apple- banana
单行:
fruits: [apple,banana]
2. HelloWorld案例
1)在windows环境,新建azkaban.project文件,编辑内容如下
azkaban-flow-version: 2.0
注意:该文件作用,是采用新的Flow-API方式解析flow文件。
2)新建basic.flow文件,内容如下
nodes:- name: jobAtype: commandconfig:command: echo "Hello World"
(1)Name:job名称
(2)Type:job类型。command表示你要执行作业的方式为命令
(3)Config:job配置
3)将azkaban.project、basic.flow文件压缩到一个zip文件,文件名称必须是英文。
4)在WebServer新建项目:http://hadoop102:8081/index
5)给项目名称命名和添加项目描述
6)first.zip文件上传
7)选择上传的文件
8)执行任务流
9)在日志中,查看运行结果
3. JavaProcess案例
JavaProcess类型可以运行一个自定义主类方法,type类型为javaprocess,可用的配置为:
Xms:最小堆
Xmx:最大堆
java.class:要运行的Java对象,其中必须包含Main方法
案例:
1)新建一个azkaban的maven工程
2)创建包名:com.azkaban
3)创建AzTest类
package com.azkaban;public class AzTest {public static void main(String[] args) {System.out.println("This is for testing!");}
}
4)打包成jar包azkaban-1.0-SNAPSHOT.jar
5)新建testJava.flow,内容如下
nodes:- name: test_javatype: javaprocessconfig:Xms: 96MXmx: 200Mjava.class: com.azkaban.AzTest
6)将Jar包、flow文件和project文件打包成javatest.zip
7)创建项目=》上传javatest.zip =》执行作业=》观察结果
4. 作业依赖案例
需求:JobA和JobB执行完了,才能执行JobC
具体步骤:
1)修改basic.flow为如下内容
nodes:- name: jobCtype: command# jobC 依赖 JobA和JobBdependsOn:- jobA- jobBconfig:command: echo "I’m JobC"- name: jobAtype: commandconfig:command: echo "I’m JobA"- name: jobBtype: commandconfig:command: echo "I’m JobB"
(1)dependsOn:作业依赖,后面案例中演示
2)将修改后的basic.flow和azkaban.project压缩成second.zip文件
3)重复HelloWorld后续步骤。
5. 自动失败重试案例
需求:如果执行任务失败,需要重试3次,重试的时间间隔10000ms
具体步骤:
1)编译配置流
nodes:- name: JobAtype: commandconfig:command: sh /not_exists.shretries: 3retry.backoff: 10000
参数说明:
retries:重试次数
retry.backoff:重试的时间间隔
2)将修改后的basic.flow和azkaban.project压缩成four.zip文件
3)重复HelloWorld后续步骤。
4)执行并观察到一次失败+三次重试
5)也可以点击上图中的Log,在任务日志中看到,总共执行了4次。
6)也可以在Flow全局配置中添加任务失败重试配置,此时重试配置会应用到所有Job。
案例如下:
config:retries: 3retry.backoff: 10000
nodes:- name: JobAtype: commandconfig:command: sh /not_exists.sh
6. 手动失败重试案例
需求:JobA=》JobB(依赖于A)=》JobC=》JobD=》JobE=》JobF。生产环境,任何Job都有可能挂掉,可以根据需求执行想要执行的Job。
具体步骤:
1)编译配置流
nodes:- name: JobAtype: commandconfig:command: echo "This is JobA."- name: JobBtype: commanddependsOn:- JobAconfig:command: echo "This is JobB."- name: JobCtype: commanddependsOn:- JobBconfig:command: echo "This is JobC."- name: JobDtype: commanddependsOn:- JobCconfig:command: echo "This is JobD."- name: JobEtype: commanddependsOn:- JobDconfig:command: echo "This is JobE."- name: JobFtype: commanddependsOn:- JobEconfig:command: echo "This is JobF."
2)将修改后的basic.flow和azkaban.project压缩成five.zip文件
3)重复HelloWorld后续步骤。
Enable和Disable下面都分别有如下参数:
Parents:该作业的上一个任务
Ancestors:该作业前的所有任务
Children:该作业后的一个任务
Descendents:该作业后的所有任务
Enable All:所有的任务
4)可以根据需求选择性执行对应的任务。
Azkaban配置Work Flow案例实操相关推荐
- 新硬盘挂载-fdisk+mount案例实操
新硬盘挂载-fdisk+mount案例实操 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 现在很多服务器都支持热插拔了,当有新的硬盘插入到服务器上我们需要将其分区,格式化,然后挂载 ...
- 数据模型同学看过来|代码案例实操来袭
去年年底,央行开出反洗钱罚单,多家银行合计被罚1040万元. 当时,中国人民银行石家庄中心支行披露的反洗钱行政处罚信息公示表显示,因涉及未按照规定履行客户身份识别义务等,中行.邮储.浦发三家银行以及阳 ...
- MapReduce入门(一)—— MapReduce概述 + WordCount案例实操
MapReduce入门(一)-- MapReduce概述 文章目录 MapReduce入门(一)-- MapReduce概述 1.1 MapReduce 定义 1.2 MapReduce 优缺点 1. ...
- Arduino案例实操 -- 语音播放模块(DY-SV5W)
案例主控板如不做特殊说明的话,均默认是Arduino UNO控制板. 本次实验以UNO发送串口协议控制语音播放器播放歌曲,语音播放模块选型DY-SV5W. 文章标题导航 一.硬件选择 1. Ardui ...
- 2. WordCount案例实操
文章目录 WordCount案例实操 1. 官方WordCount源码 2. 常用数据序列化类型 3. MapReduce编程规范 3.1 Mapper阶段 3.2 Reducer阶段 3.3 Dri ...
- Nginx——反向代理 负载均衡(无理论,案例实操)
1.开篇 有关Nginx的下载安装.相关理论内容,这里就不再多说了,详情可以参考我的这几篇文章: https://szh-forever-young.blog.csdn.net/article/det ...
- 大数据培训课程WordCount案例实操
WordCount案例实操 1.需求 在给定的文本文件中统计输出每一个单词出现的总次数 (1)输入数据 (2)期望输出数据 atguigu 2 banzhang 1 cls 2 hadoop ...
- 尚硅谷大数据技术Spark教程-笔记09【SparkStreaming(概念、入门、DStream入门、案例实操、总结)】
尚硅谷大数据技术-教程-学习路线-笔记汇总表[课程资料下载] 视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[SparkCore ...
- PaddleDetection行人分析工具PP-Human案例实操
PaddleDetection行人分析工具-PP-Human案例实操 本项目将带大家快速上手PP-Human,实操行人跟踪.属性分析和行为识别等行人高频场景应用,以及PP-Human多种使用方式. 光 ...
最新文章
- 阿里开源了一项自研核心技术 Pouch!
- 20年老码农分享20条编程经验,你pick哪些?
- CV之MobiLenet:基于openpose利用CMU/MobilenetV2算法实现对多人体姿态(2019湖人勒布朗詹姆斯扣篮)实时估计检测
- 开源硬件论坛,燃烧你的创造力
- dynamodb java_使用Java第2部分查询DynamoDB项
- Windows Phone Local Database Schema Upgrade Part1 - Adding new columns
- C++中如何读取一个数的位数_初中数学:近似数和平均数知识点总结及练习
- SharePoint 2010新体验9 - 内容管理器(Content Organizer)
- kvm初体验之八:调整vm的vcpu, memory, disk大小
- 2008年管理软件行业的七大趋势预测
- 整理农行面试软开最常问到的题---------操作系统
- 90-0004Web颜色标准【中英文颜色对照】
- Git以及Githup的使用
- 微信小程序开发(创建项目介绍)
- Java微信公众平台开发之OAuth2.0网页授权
- 会场安排问题(活动场次而不是会场场次)
- MYSQL 命令中常出现的error - 1046 1064 1264
- static, const, static const 与 const static
- 23230118英语学习
- 熔断器熔断时间标准_正确认识熔断器的熔断时间
热门文章
- java 使用sourceforge.pinyin4j查询汉字拼音
- xcodebuild命令
- 【一日一logo_day_35】chi
- 用dos2unix批量转换文件
- Linux_查看内存使用情况
- 看过无数总结,经历无数实践,这才是顶级IT公司的架构设计
- html圆形图片切换,jQuery和CSS3炫酷圆形图片切换特效
- 浅谈马尔可夫决策过程(一)
- H3C 物联网路由器4G配置
- 由序列确定二叉树:前序序列和中序序列构造二叉树 后序序列和中序序列构造二叉树 层次遍历序列和中序遍历序列构造二叉树 代码实现(c语言)