Azkaban 任务调度(三)
单一 job 任务调度
- 创建 job 描述文件
[root@node-01 jobs]# vim first.job
#first.job
type=command
command=echo 'this is my first job'
- 将 job 资源文件打包成 zip 文件
# 安装 zip 命令
[root@node-01 jobs]# yum install -y zip unzip
[root@node-01 jobs]# zip first.zip first.job
adding: first.job (deflated 10%)
[root@node-01 jobs]# ll
总用量 8
-rw-r--r--. 1 root root 50 5月 19 22:51 first.job
-rw-r--r--. 1 root root 213 5月 19 22:53 first.zip
注意:目前,Azkaban 上传的工作流文件只支持 xxx.zip 文件。zip 应包含 xxx.job 运行作业所需的文件和任何文件(文件名后缀必须以 .job 结尾,否则无法识别)。作业名称在项目中必须是唯一的。
通过 Azkaban 的 web 管理平台创建 project 并上传 job 的 zip 包
创建工程,如下图:

上传 zip 文件,如下图:

执行 Job 任务,如下图:


点击 Continue 按钮,执行 Job,如下图:

Job 执行成功,如下图:

查看日志,如下图:

多 Job 工作流调度
创建有依赖关系的多个 job 描述
第一个 job:start.job
[root@node-01 jobs]# vim start.job
#start.job
type=command
command=touch /root/jobs/kangkang.txt
第二个 job:step1.job 依赖 start.job
[root@node-01 jobs]# vim step1.job
#step1.job
type=command
dependencies=start
command=echo "this is step1 job"
第三个 job:step2.job 依赖 start.job
[root@node-01 jobs]# vim step2.job
#step2.job
type=command
dependencies=start
command=echo "this is step2 job"
第四个 job:finish.job 依赖 step1.job 和 step2.job
[root@node-01 jobs]# vim finish.job
#finish.job
type=command
dependencies=step1,step2
command=echo "this is finish job"
- 将所有 job 资源文件打到一个 zip 包中
[root@node-01 jobs]# zip jobs.zip start.job step1.job step2.job finish.job
在 Azkaban 的 web 管理界面创建工程并上传 zip 包

启动工作流 Flow ,查看结果
Java 程序任务调度
编写 Java 程序
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; /**
* @desc Azkaban Java 程序任务调度
*/
public class AzkabanTest {
public void run() throws IOException {
//根据需要编写具体代码
FileOutputStream fos = new FileOutputStream("/root/azkaban.txt");
fos.write("this is a java program.".getBytes());
fos.close();
} public static void main(String[] args) throws IOException {
AzkabanTest azkabanTest = new AzkabanTest();
azkabanTest.run();
}
}
将 Java 程序打成 Jar 包,创建 lib 目录,将 Jar 包放入 lib 内
[root@node-01 ~]# mkdir lib
[root@node-01 ~]# mv AzkabanDemo-1.0-SNAPSHOT.jar lib/
编写 job 文件
[root@node-01 ~]# cd jobs/
#azkabanJava.job
type=javaprocess
java.class=AzkabanTest
classpath=/root/lib/*
将 job 文件打成 zip 包
[root@node-01 jobs]# zip azkabanJava.zip azkabanJava.job
通过 Azkaban 的 web 管理平台创建 project 并上传 job 压缩包,启动执行该 job
HDFS 操作任务
- 创建 job 描述文件
[root@node-01 jobs]# $ vim fs.job
#hdfs job
type=command
command=/root/apps/hadoop-3.2.1/bin/hadoop fs -mkdir /azkaban
- 将 job 资源文件打包成zip文件
[root@node-01 jobs]# zip fs.zip fs.job
- 通过 Azkaban 的 web 管理平台创建 project 并上传 job 压缩包
- 启动执行该 job
- 查看结果
MapReduce任务
- 创建 job 描述文件,及 mr 程序 jar 包
[root@node-01 jobs]# vim mapreduce.job
#mapreduce job
type=command
command=/root/apps/hadoop-3.2.1/bin/hadoop jar /root/apps/hadoop-3.2.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount /wordcount/input /wordcount/output
- 将所有 job 资源文件打到一个 zip 包中
[root@node-01 jobs]# zip mapreduce.zip mapreduce.job
在 Azkaban 的 web 管理界面创建工程并上传 zip 包
启动执行该 job
查看结果
Hive脚本任务
- 创建 hive 脚本
[root@node-01 jobs]# vim student.sql
use default;
drop table student;
create table student(id int, name string)
row format delimited fields terminated by '\t';
load data local inpath '/root/student.txt' into table student;
insert overwrite local directory '/root/student'
row format delimited fields terminated by '\t'
select * from student;
- Job 描述文件:hive.job
[root@node-01 jobs]# vim hive.job
#hive job
type=command
command=/root/apps/hive-3.1.2/bin/hive -f /root/apps/jobs/student.sql
- 将所有 job 资源文件打到一个 zip 包中
[root@node-01 jobs]# zip hive.zip hive.job
在 Azkaban 的 web 管理界面创建工程并上传 zip 包
启动 job
查看结果
Azkaban 任务调度(三)的更多相关文章
- 任务调度(三)——Timer的替代品ScheduledExecutorService简单介绍
先前的两篇博文<任务调度(一)--jdk自带的Timer>和<任务调度(二)--jdk自带的Timer 动态改动任务运行计划>中,简介了一下Timer,能够实现几本的功能.可是 ...
- Azkaban(三)Azkaban的使用
界面介绍 首页有四个菜单 projects:最重要的部分,创建一个工程,所有flows将在工程中运行. scheduling:显示定时任务 executing:显示当前运行的任务 history:显示 ...
- 分布式计算(三)Azkaban介绍
转载自:Azkaban学习之路 (一)Azkaban的基础介绍 目录 一.为什么需要工作流调度器 二.工作流调度实现方式 三.常见工作流调度系统 四.各种调度工具对比 五.Azkaban 与 Oozi ...
- Azkaban的架构(三)
Azkaban是什么?(一) Azkaban的功能特点(二) 不多说,直接上干货! http://www.cnblogs.com/zlslch/category/938837.html Azkaban ...
- Oozie和Azkaban的技术选型和对比
1 两种调度工具功能对比图 下面的表格对上述2种hadoop工作流调度器的关键特性进行了比较,尽管这些工作流调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在区别 特性 ...
- 基于Azkaban的任务定时调度实践
本文由云+社区发表 作者:maxluo 一.Azkaban介绍 Azkaban是LinkedIn开源的任务调度框架,类似于JavaEE中的JBPM和Activiti工作流框架. Azkaban功能和特 ...
- Azkaban 使用问题及解决(一)
什么是Azkaban Azkaban是一款基于Java编写的任务调度系统 任务调度:有四个任务脚A.B.C.D,其中任务A与任务B可以并行运行,然后任务C依赖任务A和任务B的运行结果,任务D依赖任务C ...
- azkaban架构介绍
转自:https://blog.csdn.net/huoji1990/article/details/81911904 官网:https://azkaban.readthedocs.io/en/lat ...
- Azkaban学习之路 (一)Azkaban的基础介绍
一.为什么需要工作流调度器 1.一个完整的数据分析系统通常都是由大量任务单元组成: shell 脚本程序,java 程序,mapreduce 程序.hive 脚本等 2.各任务单元之间存在时间先后及前 ...
- Azkaban 简介
本文简单介绍一下Azkaban及其特点.azkaban是一个开源的任务调度系统,用于负责任务的调度运行(如数据仓库调度),用以替代linux中的crontab. 一.Azkaban是什么? 1.1 A ...
随机推荐
- 报表自动生成程序:ZREPORT_GENERATOR
群里看到的,抄别人的...源自哪里就不清楚了.这里申明一下:非本人所写,如果侵权,你打群主好了. 这里说明一下:这个程序不太好用,没有SQVI友好.(以下问题可能是没用字段别名,不想试验了) 1.生成 ...
- SenseVoice部署,并调用api接口
目录 安装Python 代码下载 虚拟环境 安装依赖 下载模型 修改启用webui.py 启用api.py 安装Python 这个网上找下教程安装下就可以,版本应该没有什么要求,我装的是3.10.7 ...
- hot100之回溯下
单词搜索(079) class Solution { int m, n; public boolean exist(char[][] board, String word) { m = board.l ...
- Hyper loglog 简单理解
最近在学习redis, 看到hyper loglog 有这么近乎作弊的空间复杂度 着实好奇 其核心使用了概率统计 通过局部判断总体 loglog 我们的任务是基数统计 判断不重复子串数量 字串由0/1 ...
- Trie 字典树的原理和应用解析
如何高效地存储和查找大量字符串或前缀?比如自动补全.拼写检查.敏感词过滤等场景,都对字符串的处理速度有很高要求.哈希表虽然查找快,但并不擅长前缀匹配:普通树结构虽然灵活,但对于大量字符串的处理效率并不 ...
- 学习spring cloud记录4-Eureka
前言 Eureka是一个注册中心,在以前的记录中,两个服务之间的调用需要使用硬编码的方式,即把ip和端口号等地址写死在程序中,使用Eureka可解决此问题,但不知能解决这个问题,还有其他的作用. Eu ...
- Rust修仙之道 第十一章 构型境 · 设计模式之道
第十一章:构型境 · 设计模式之道 "千术可构,格局需明:结构得法,道可延年." 顾行云正式承担"魂核驱动阵"的重构之任,发现需求纷繁.参数繁多.状态变化复杂. ...
- 成熟的前端项目后期需要做的两件事儿 关于 eslint
简介 就是 npm run fix 修改js 错误 npm run fix:style 修改 css 错误
- POLIR-Society-Organization-Psychology-Attitude-Life: $\large \bm{Attitude} : 对待\bm{社会生活环境} 的 \bm{Attitude}$
POLIR-Society-Organization-Life: 对待社会生活环境的正确态度 Question: 我认为对待社会生活环境的正确态度是: Imply when facing Non-Be ...
- BIgdataAIML-IBM-A neural networks deep dive - An introduction to neural networks and their programming
https://developer.ibm.com/articles/cc-cognitive-neural-networks-deep-dive/ By M. Tim Jones, Publishe ...