azkaban使用案例

一、Command类型的单一job

command1.job

#command.job
type=command
command=bash hello.sh

hello.sh

#!/bin/bash
echo 'hello azkaban'

将job资源文件打包成zip文件:

image

通过azkaban的web管理平台创建project并上传job压缩包

image

image

启动执行该job

image

image

这里直接执行,执行完后可以查看:

image

image

二、Command类型的多job工作流

第一个job:foo.job

# foo.job
type=command
command=echo foo

第二个job:bar.job依赖foo.job

# bar.job
type=command
dependencies=foo
command=echo bar

将所有job资源文件打到一个zip包中

在azkaban的web管理界面创建工程并上传zip包

启动工作流

image

三、HDFS操作任务

首先看一下hdfs目录:

[root@node1 conf]# hdfs dfs -ls /
Found 3 items
drwxr-xr-x   - root supergroup          0 2019-12-10 17:44 /hbase
drwxrwxrwx   - root supergroup          0 2019-11-28 14:57 /tmp
drwxr-xr-x   - root supergroup          0 2019-11-29 15:10 /user

fs.job  创建一个目录

# fs.job
type=command
command=/opt/hadoop-2.7.3/bin/hadoop fs -mkdir /azaz

将所有job资源文件打到一个zip包中

在azkaban的web管理界面创建工程并上传zip包

启动工作流

再查看一下hdfs目录:

[root@node1 conf]# hdfs dfs -ls /
Found 4 items
drwxr-xr-x   - root supergroup          0 2020-01-07 17:56 /azaz
drwxr-xr-x   - root supergroup          0 2019-12-10 17:44 /hbase
drwxrwxrwx   - root supergroup          0 2019-11-28 14:57 /tmp
drwxr-xr-x   - root supergroup          0 2019-11-29 15:10 /user

四、MapReduce任务

创建input文件

复制代码
[root@node1 files]# hdfs dfs -mkdir /azaz/input

[root@node1 files]# cat wc.txt 
hello linux
hello word
hive mysql
mysql hbase

[root@node1 files]# hdfs dfs -put wc.txt /azaz/input
复制代码

创建job描述文件,及mr程序jar包(示例中直接使用hadoop自带的example jar)

# mrwc.job
type=command
command=/opt/hadoop-2.7.3/bin/hadoop  jar hadoop-mapreduce-examples-2.7.3.jar wordcount /azaz/input /azaz/output

将jar包和job文件打成zip包

在azkaban的web管理界面创建工程并上传zip包

启动工作流

最后查看执行结果:

复制代码
[root@node1 files]# hdfs dfs -text /azaz/output/part-r-00000
hbase    1
hello    2
hive    1
linux    1
mysql    2
word    1
复制代码

五、HIVE脚本任务

c.txt

[root@node1 files]# cat c.txt 
 1,zhangsan
 2,lisi
 3,wangwu

hdfs dfs -pur c.txt /azaz/hiveinput

Hive脚本: test.sql

复制代码
use default;

drop table aztest;

create table aztest(id int,name string) row format delimited fields terminated by ',' ;

load data inpath '/azaz/hiveinput' into table aztest;

create table azres as select * from aztest;

insert overwrite directory '/azaz/hiveoutput' select count(1) from aztest;
复制代码

job文件:hivef.job

# hivef.job
type=command
command=/opt/hive-2.1.1/bin/hive -f 'test.sql'

将所有job资源文件打到一个zip包中

在azkaban的web管理界面创建工程并上传zip包

启动job

查看结果:

复制代码
hive> use default;

hive> select * from aztest;
OK
1    zhangsan
2    lisi
3    wangwu

hive> select * from azres;
OK
1    zhangsan
2    lisi
3    wangwu
复制代码

 

 
原文地址:https://www.cnblogs.com/javalinux/p/14993758.html