日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本,Command类型多job工作flow,HDFS操作任务,MapReduce任务,HIVE任务

發(fā)布時間:2024/9/27 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本,Command类型多job工作flow,HDFS操作任务,MapReduce任务,HIVE任务 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.Azkaban實(shí)戰(zhàn)

Azkaba內(nèi)置的任務(wù)類型支持command、java

Command類型單一job示例

1、創(chuàng)建job描述文件

vi command.job #command.job type=command command=echo 'hello'

2、將job資源文件打包成zip文件
zip command.job

3、通過azkaban的web管理平臺創(chuàng)建project并上傳job壓縮包
首先創(chuàng)建project

上傳zip包,例如:

zip包中的內(nèi)容如下:

上傳界面:

4、啟動執(zhí)行該job
可以查看腳本的內(nèi)容:

執(zhí)行工作流:




上面的已經(jīng)變成了綠色了,表示已經(jīng)執(zhí)行完成了。


上面的repeat表示每天執(zhí)行一次

1.2.通過任務(wù)執(zhí)行shell腳本

編寫command.job文件
內(nèi)容如下:

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

上面的command=sh hello.sh表示的意思是執(zhí)行hello.sh腳本,其中hello.sh的腳本如下:

#!/bin/bash echo 'hello' > /home/tuzq/software/azkabandata/hello.txt

按照上面的案例,上傳上去,并且執(zhí)行。

上傳任務(wù)的腳本


執(zhí)行工作流:


進(jìn)入/home/tuzq/software/azkabandata查看是否有文件:

[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工作流flow

1、創(chuàng)建有依賴關(guān)系的多個job描述
第一個job:foo.job

# foo.job type=command command=echo foo

第二個job:bar.job依賴foo.job

# bar.job type=command #表示這個命令依賴foo這個任務(wù) dependencies=foo command=echo bar

2、將所有job資源文件打到一個zip包中

3、在azkaban的web管理界面創(chuàng)建工程并上傳zip包

4、啟動工作流flow




1.4.HDFS操作任務(wù)

1、創(chuàng)建job描述文件

# fs.job type=command command=/home/tuzq/software/hadoop-2.8.0/bin/hdfs dfs -mkdir /azaz

2、將job資源文件打包成zip文件

3、通過azkaban的web管理平臺創(chuàng)建project并上傳job壓縮包
4、啟動執(zhí)行該job

通過上滿的結(jié)果可以證明,可以通過job來自行hdfs的命令

1.5.MAPREDUCE任務(wù)

Mr任務(wù)依然可以使用command的job類型來執(zhí)行
1、創(chuàng)建job描述文件,及mr程序jar包(示例中直接使用hadoop自帶的example jar)

# 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管理界面創(chuàng)建工程并上傳zip包

上傳之后的準(zhǔn)備工作是:
將wordcount/input上傳到hdfs,命令如下:

[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中內(nèi)容類似:

4、啟動job
現(xiàn)象:


執(zhí)行完成之后的狀態(tài)是:



查看hdfs上的內(nèi)容:

開始的時候發(fā)現(xiàn)在/wordcount下只有input這個文件夾,當(dāng)執(zhí)行完成之后,發(fā)現(xiàn)有了azout這個文件夾。

綜上所述,說明通過azkaban在hdfs上生成了文件

1.5.HIVE腳本任務(wù)

創(chuàng)建job描述文件和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

#hivef.job type=command command=/home/tuzq/software/hive/apache-hive-1.2.1-bin/bin/hive -f 'test.sql'

2、將所有job資源文件打到一個zip包中

3、在azkaban的web管理界面創(chuàng)建工程并上傳zip包
4、啟動job
準(zhǔn)備工作(在hdfs上創(chuàng)建一個hive執(zhí)行sql后依賴的文件夾):
[root@hadoop1 apache-hive-1.2.1-bin]# hdfs dfs -mkdir -p /aztest/hiveoutput
執(zhí)行完成之后效果如下:


特別注意的是:如果執(zhí)行錯了,可以查看任務(wù)的日志輸出:

總結(jié)

以上是生活随笔為你收集整理的Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本,Command类型多job工作flow,HDFS操作任务,MapReduce任务,HIVE任务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。