日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

1.Azkaban實戰

Azkaba內置的任務類型支持command、java

Command類型單一job示例

1、創建job描述文件

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

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

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

上傳zip包,例如:

zip包中的內容如下:

上傳界面:

4、啟動執行該job
可以查看腳本的內容:

執行工作流:




上面的已經變成了綠色了,表示已經執行完成了。


上面的repeat表示每天執行一次

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

按照上面的案例,上傳上去,并且執行。

上傳任務的腳本


執行工作流:


進入/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、創建有依賴關系的多個job描述
第一個job:foo.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文件

3、通過azkaban的web管理平臺創建project并上傳job壓縮包
4、啟動執行該job

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

1.5.MAPREDUCE任務

Mr任務依然可以使用command的job類型來執行
1、創建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管理界面創建工程并上傳zip包

上傳之后的準備工作是:
將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中內容類似:

4、啟動job
現象:


執行完成之后的狀態是:



查看hdfs上的內容:

開始的時候發現在/wordcount下只有input這個文件夾,當執行完成之后,發現有了azout這個文件夾。

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

1.5.HIVE腳本任務

創建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管理界面創建工程并上傳zip包
4、啟動job
準備工作(在hdfs上創建一個hive執行sql后依賴的文件夾):
[root@hadoop1 apache-hive-1.2.1-bin]# hdfs dfs -mkdir -p /aztest/hiveoutput
執行完成之后效果如下:


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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。