单一 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 任务调度(三)的更多相关文章

  1. 任务调度(三)——Timer的替代品ScheduledExecutorService简单介绍

    先前的两篇博文<任务调度(一)--jdk自带的Timer>和<任务调度(二)--jdk自带的Timer 动态改动任务运行计划>中,简介了一下Timer,能够实现几本的功能.可是 ...

  2. Azkaban(三)Azkaban的使用

    界面介绍 首页有四个菜单 projects:最重要的部分,创建一个工程,所有flows将在工程中运行. scheduling:显示定时任务 executing:显示当前运行的任务 history:显示 ...

  3. 分布式计算(三)Azkaban介绍

    转载自:Azkaban学习之路 (一)Azkaban的基础介绍 目录 一.为什么需要工作流调度器 二.工作流调度实现方式 三.常见工作流调度系统 四.各种调度工具对比 五.Azkaban 与 Oozi ...

  4. Azkaban的架构(三)

    Azkaban是什么?(一) Azkaban的功能特点(二) 不多说,直接上干货! http://www.cnblogs.com/zlslch/category/938837.html Azkaban ...

  5. Oozie和Azkaban的技术选型和对比

    1 两种调度工具功能对比图 下面的表格对上述2种hadoop工作流调度器的关键特性进行了比较,尽管这些工作流调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在区别 特性 ...

  6. 基于Azkaban的任务定时调度实践

    本文由云+社区发表 作者:maxluo 一.Azkaban介绍 Azkaban是LinkedIn开源的任务调度框架,类似于JavaEE中的JBPM和Activiti工作流框架. Azkaban功能和特 ...

  7. Azkaban 使用问题及解决(一)

    什么是Azkaban Azkaban是一款基于Java编写的任务调度系统 任务调度:有四个任务脚A.B.C.D,其中任务A与任务B可以并行运行,然后任务C依赖任务A和任务B的运行结果,任务D依赖任务C ...

  8. azkaban架构介绍

    转自:https://blog.csdn.net/huoji1990/article/details/81911904 官网:https://azkaban.readthedocs.io/en/lat ...

  9. Azkaban学习之路 (一)Azkaban的基础介绍

    一.为什么需要工作流调度器 1.一个完整的数据分析系统通常都是由大量任务单元组成: shell 脚本程序,java 程序,mapreduce 程序.hive 脚本等 2.各任务单元之间存在时间先后及前 ...

  10. Azkaban 简介

    本文简单介绍一下Azkaban及其特点.azkaban是一个开源的任务调度系统,用于负责任务的调度运行(如数据仓库调度),用以替代linux中的crontab. 一.Azkaban是什么? 1.1 A ...

随机推荐

  1. 后端性能-batch 化的想法

    项目中我们提高性能或者吞吐经常使用的是 batch 化,比如说获取帐号信息,我们1条1条查询可能不如我们一次查询100条性能高. 有的时候想这样是为什么呢?因为单个请求中间有网络往返.网络延迟等原因会 ...

  2. hashlib+time模块

    hashlib模块 [一]什么是摘要算法 Python的hashlib提供了常见的摘要算法 如MD5 SHA1等等. 摘要算法又称哈希算法.散列算法. 它通过一个函数,把任意长度的数据转换为一个长度固 ...

  3. Elastic学习之旅 (12) .NET 6应用集成ES - 下

    大家好,我是Edison. 上一篇:.NET集成ES进行CRUD 写在开头 在.NET应用中集成ES一般涉及两个方面: (1)将ES当存储用,类似于MongoDB,做文档的增删查改,这一类操作偏CRU ...

  4. 前端开发系列060-网络篇之浏览器、HTML和内核(引擎)

    一.浏览器的发展和特性 浏览器的发展 浏览器的历史并不长,即便到今天来算也只有短短的27年,下面列出浏览器历史中的重要节点. Tim Berners-Lee 在80年代末期90年代初期发明了世界上第一 ...

  5. win10正式版如何禁止OneDrive开机启动的问题

    有一位深度官网的小伙伴,在使用win10系统时发现,自带的OneDrive开机就自启动,又无法在设置取消这个开机启动项.该如何解决呢?本文中,深度技术小编就来为大家带来详细的禁止方法,可以看看参考一下 ...

  6. Win11电脑设置系统还原点的问题

    有雨林木风官网用户,问小编在原版win11系统里面怎么设置系统还原点?先来说说,在Windows11系统中的系统还原点功能,只要系统有什么问题,我们可以还原这个备份的还原点,就不用重新安装一些常用的软 ...

  7. Win11系统更新失败错误0x800f081f的问题

    使用Windows11系统的电脑基地用户都知道,win11更新补丁漏洞是十分勤奋的,可以说每周都会更新一次,而不少用户在更新的时候却遇到一些问题,出现错误代码0x800f081f,导致更新失败.那么遇 ...

  8. 基于c8t6的平衡小车(CubeMX+MDK)(2)IIC和陀螺仪

    IIC 同步 半双工 通信协议 硬件电路 GPIO配置为OOD,采取强下拉,弱上拉,避免发生短路和输入输出的频繁切换 SCL:所有设备的SCL一起连接,由主机控制 SDA:所有设备的SDA一起连接,谁 ...

  9. Apereo CAS 4.1 反序列化命令执行漏洞 (复现)

    此漏洞需要用到工具Apereo-CAS-Attack,工具地址:https://github.com/vulhub/Apereo-CAS-Attack 还需要下载结合https://github.co ...

  10. 【数据库基石】聚簇索引 vs 非聚簇索引:结构图解、性能差异与最佳实践

    深入解析:聚簇索引 vs 非聚簇索引的核心区别与工作原理 数据库索引设计的必修课 一.核心区别概览 通过对比表快速掌握核心差异: 特性 聚簇索引 非聚簇索引 关键影响 索引数量 每表仅1个 每表可多个 ...