azkaban 应用

鸡汤: 你不勇敢,没人替你坚强

1. 单任务

  Azkaba内置的任务类型支持command、java

root@leco:/home/leco# cat foo.job 
type=command
command=echo foo
root@leco:/home/leco# zip foo.zip foo.job 
updating: foo.job (deflated 13%)

将job资源文件打包成zip文件,通过azkaban的web管理平台创建project并上传job压缩包

azkaban azkaban azkaban azkaban azkaban azkaban azkaban azkaban azkaban azkaban

2. 多依赖任务

  • 创建有依赖关系的多个job描述,第一个job:foo.job
root@leco:/home/leco/cc# cat foo.job 
type=command
command=echo foo
  • 第二个job:bar.job依赖foo.job
root@leco:/home/leco/cc# cat bar.job 
type=command
dependencies=foo
command=echo bar
  • 将所有job资源文件打到一个zip包中

root@leco:/home/leco/cc# ls foobar.zip 
foobar.zip
azkaban

3. HDFS 任务

本测试通过azkaban 在hdfs上创建以azkaban为名的目录。

root@leco:/home/leco/cc# ls
bar.job  foobar.zip  foo.job  foo.zip  hdfs.job
root@leco:/home/leco/cc# zip hdfs.zip hdfs.job 
  adding: hdfs.job (deflated 12%)
root@leco:/home/leco/cc# cat hdfs.job 
type=command
command=/usr/local/hadoop-2.6.5/bin/hadoop fs -mkdir /azkaban
开始之前检查hdfs
[root@master server]# hadoop fs -ls /|grep azkaban
[root@master server]# 

开始之前hdfs没有azkaban目录。

azkaban

查看结果

[root@master server]# hadoop fs -ls /|grep azkaban
drwxr-xr-x   - root supergroup          0 2019-08-13 15:55 /azkaban

4. MapReduce任务

  Mr任务依然可以使用command的job类型来执行

  • 准备数据
[root@master hadoop]# hadoop fs -mkdir /azkaban_demo
[root@master hadoop]# hadoop fs -put /etc/passwd /azkaban_demo
[root@master hadoop]# hadoop fs -ls /azkaban_demo/
Found 1 items
-rw-r--r--   3 root supergroup       1159 2019-08-13 16:06 /azkaban_demo/passwd
  • mrwc

root@leco:/home/leco/cc# cat mrwc.job 
type=command
command=/usr/local/hadoop/bin/hadoop  jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar  wordcount /azkaban_demo /azkaban_out

root@leco:/home/leco/cc# ls mrwc*
mrwc.job  mrwc.zip
检查
[root@master hadoop]# hadoop fs -ls /azkaban_out
ls: `/azkaban_out': No such file or directory
azkaban azkaban 检查结果
[root@master hadoop]# hadoop fs -ls /azkaban_out
Found 2 items
-rw-r--r--   3 root supergroup          0 2019-08-13 16:34 /azkaban_out/_SUCCESS
-rw-r--r--   3 root supergroup       1245 2019-08-13 16:34 /azkaban_out/part-r-00000
[root@master hadoop]# 

5. 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; 
    

  • Job描述文件:hivef.job

    type=command
    command=/opt/module/hive/bin/hive -f 'test.sql'