Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本
1.Azkaban实战Azkaba内置的任务类型支持command、java Command类型单一job示例1、创建job描述文件 vi command.job
#command.job
type=command
command=echo 'hello'
2、将job资源文件打包成zip文件 3、通过azkaban的web管理平台创建project并上传job压缩包 1.2.通过任务执行shell脚本编写command.job文件 #command.job
type=command
command=sh hello.sh
上面的command=sh hello.sh表示的意思是执行hello.sh脚本,其中hello.sh的脚本如下: #!/bin/bash
echo 'hello' > /home/tuzq/software/azkabandata/hello.txt
按照上面的案例,上传上去,并且执行。 [root@hadoop1 azkabandata]# cd /home/tuzq/software/azkabandata
[root@hadoop1 azkabandata]# ls
hello.txt
[root@hadoop1 azkabandata]# cat hello.txt
hello
[root@hadoop1 azkabandata]#
1.3.Command类型多job工作流flow1、创建有依赖关系的多个job描述 # foo.job
type=command
command=echo foo
第二个job:bar.job依赖foo.job # bar.job
type=command
#表示这个命令依赖foo这个任务
dependencies=foo
command=echo bar
2、将所有job资源文件打到一个zip包中 3、在azkaban的web管理界面创建工程并上传zip包 4、启动工作流flow 1.4.HDFS操作任务1、创建job描述文件 # fs.job
type=command
command=/home/tuzq/software/hadoop-2.8.0/bin/hdfs dfs -mkdir /azaz
2、将job资源文件打包成zip文件 1.5.MAPREDUCE任务Mr任务依然可以使用command的job类型来执行 # mrwc.job
type=command
command=/home/tuzq/software/hadoop-2.8.0/bin/hadoop jar hadoop-mapreduce-examples-2.8.0.jar wordcount hdfs://hadoop1/wordcount/input hdfs://hadoop1/wordcount/azout
2、将所有job资源文件打到一个zip包中 其中hadoop-mapreduce-examples-2.8.0.jar 在$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.0.jar 3、在azkaban的web管理界面创建工程并上传zip包 上传之后的准备工作是: [root@hadoop1 software]# hdfs dfs -put wordcount /
[root@hadoop1 software]# hdfs dfs -ls /
Found 8 items
drwxr-xr-x - root supergroup 0 2017-06-13 12:01 /40000
drwxr-xr-x - root supergroup 0 2017-06-14 18:31 /azaz
drwxr-xr-x - root supergroup 0 2017-06-13 23:43 /flume
drwxr-xr-x - root supergroup 0 2017-06-14 18:46 /input
-rw-r--r-- 3 root supergroup 3719 2017-06-10 12:11 /kms.sh drwxrwxrwx - root supergroup 0 2017-06-14 18:43 /tmp
drwxr-xr-x - root supergroup 0 2017-06-10 22:27 /user
drwxr-xr-x - root supergroup 0 2017-06-14 18:47 /wordcount
[root@hadoop1 software]# hdfs dfs -ls hdfs:/wordcount/input
Found 9 items
-rw-r--r-- 3 root supergroup 604 2017-06-14 18:47 hdfs:///wordcount/input/1.txt -rw-r--r-- 3 root supergroup 604 2017-06-14 18:47 hdfs:///wordcount/input/2.txt -rw-r--r-- 3 root supergroup 604 2017-06-14 18:47 hdfs:///wordcount/input/3.txt -rw-r--r-- 3 root supergroup 604 2017-06-14 18:47 hdfs:///wordcount/input/4.txt -rw-r--r-- 3 root supergroup 604 2017-06-14 18:47 hdfs:///wordcount/input/5.txt -rw-r--r-- 3 root supergroup 27209520 2017-06-14 18:47 hdfs:///wordcount/input/a.txt -rw-r--r-- 3 root supergroup 27209520 2017-06-14 18:47 hdfs:///wordcount/input/aaa.txt -rw-r--r-- 3 root supergroup 27787264 2017-06-14 18:47 hdfs:///wordcount/input/b.txt -rw-r--r-- 3 root supergroup 26738688 2017-06-14 18:47 hdfs:///wordcount/input/c.txt
其中1.txt中内容类似: 4、启动job 综上所述,说明通过azkaban在hdfs上生成了文件 1.5.HIVE脚本任务创建job描述文件和hive脚本 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 #hivef.job
type=command
command=/home/tuzq/software/hive/apache-hive-1.2.1-bin/bin/hive -f 'test.sql'
2、将所有job资源文件打到一个zip包中 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |