Azkaban工作流配置案例

一、HelloWorld 案例

在 windows 环境,新建 azkaban.project 文件,编辑内容如下

azkaban-flow-version: 2.0

注意:该文件作用,是采用新的 Flow-API 方式解析 flow 文件。

新建 basic.flow 文件,内容如下

nodes:
 - name: jobA
   type: command
   config:
    command: echo "Hello World"

(1)Name:job 名称(2)Type:job 类型。command 表示你要执行作业的方式为命令(3)Config:job 配置

将 azkaban.project、basic.flow 文件压缩到一个 zip 文件,文件名称必须是英文。如:helloworld.zip

在 WebServer 新建项目:http://hadoop100:8091/index

给项目名称命名和添加项目描述

first.zip 文件上传

选择上传的文件

执行任务流

在日志中,查看运行结果

思考:执行HDFS命令创建文件夹怎么做?

nodes:
 - name: jobA
   type: command
   config:
    command: hadoop fs -mkdir /azkaban

思考:执行MapReduce任务怎么做?

nodes:
 - name: jobA
   type: command
   config:
    command: hadoop jar hadoop-mapreduce-examples-3.2.0.jar wordcount /wordcount/input /wordcount/output
同时将 hadoop-mapreduce-examples-3.2.0.jar包一起打进去

思考:执行Hive脚本怎么操作?

先创建Hive脚本,test.sql文件

use default;
drop table aztest;
create table aztest(id int,name string) row format delimited fields terminated by ',';
load data inpath '/aztest/hiveinput' into table aztest;
create table azres as select * from aztest;
insert overwrite directory '/aztest/hiveoutput' select count(1) from aztest; 

command内容为

nodes:
 - name: jobA
   type: command
   config:
    command: hive -f 'test.sql'

二、作业依赖案例 

需求:JobA 和 JobB 执行完了,才能执行 JobC

具体步骤:1)修改 basic.flow 为如下内容

nodes:
 - name: jobC
   type: command
   # jobC依赖jobB和jobA
   dependsOn:
    - jobA
    - jobB
   config:
    command: echo "this is C"
 
 - name: jobA
   type: command
   config:
    command: echo "this is A"
 
 - name: jobB
   type: command
   config:
    command: echo "this is B" 

(1)dependsOn:作业依赖,后面案例中演示

(2) 将修改后的 basic.flow 和 azkaban.project 压缩成 second.zip 文件

(3) 重复一HelloWorld 后续步骤。

三、 Java作业类型案例

JavaProcess 类型可以运行一个自定义主类方法,type 类型为 javaprocess,可用的配置为:

  • Xms:最小堆

  • Xmx:最大堆

  • classpath:类路径

  • java.class:要运行的 Java 对象,其中必须包含 Main 方法

  • main.args:main 方法的参数

案例:

1)新建一个 prjazkaban 的 maven 工程

2)创建包名:com.soft863​

3)创建AzTest类

package com.soft863;
​
public class AzTest {
    public static void main(String[] args) {
        System.out.println("This is for testing!");
    }
}

4)打包成 jar 包 prjazkaban-1.0-SNAPSHOT.jar

5)新建 testJava.flow,内容如下

nodes:
- name: test_java 
  type: javaprocess 
  config:
    Xms: 96M 
    Xmx: 200M
    java.class: com.soft863.AzTest

6) 将 Jar 包、flow 文件和project 文件打包成 javatest.zip

7) 创建项目=》上传 javatest.zip =》执行作业=》观察结果

四、定时执行案例

需求:JobA 每间隔 1 分钟执行一次; 具体步骤:

Azkaban 可以定时执行工作流。

在执行工作流时候,选择左下角 Schedule

右上角注意时区是上海,然后在左面填写具体执行事件,填写的方法和 crontab 配置定时任务规则一致。如下1分钟执行一次

删除定时调度

点击 remove Schedule 即可删除当前任务的调度规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数智侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值