1. 程式人生 > >Azkaban實戰,Command型別單一job示例,任務中執行外部shell指令碼,Command型別多job工作flow,HDFS操作任務,MapReduce任務,HIVE任務

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,命令如下:

[[email protected] software]# hdfs dfs -put wordcount /
[[email protected] 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

[[email protected] 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後依賴的資料夾):
[[email protected] apache-hive-1.2.1-bin]# hdfs dfs -mkdir -p /aztest/hiveoutput
執行完成之後效果如下:
這裡寫圖片描述
這裡寫圖片描述
特別注意的是:如果執行錯了,可以檢視任務的日誌輸出:

相關推薦

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

centos6centos7 根據ip地址列表檔案進行防火牆封殺的shell指令碼

centos6 shell指令碼如下: cat $1 | while read line do iptables -I OUTPUT -s ${line%.*}.0/24 -j DROP iptables -I INPUT -s ${line%.*}

Mac執行shell指令碼提示command not found的一種解決方案

本人在學習使用Mac OS的過程中,想寫一個簡單的安裝Android apk的指令碼,發現根據網上教程走完之後,總會提示一個錯誤。但是我檢查了很多遍許可權和Android包括adb環境變數配置,依然沒有找到原因,後來無意間用xcode打開了一次sh指令碼,發現裡面時另外一種

scikit-learn初步一個KNN算法示例

一個 port 算法 ict 分割 pan sele lec tar 1 import numpy as np 2 from sklearn import datasets #數據集 3 from sklearn.model_selection import tra

實戰分享教你藍牙在小程序的應用

success 查詢 notify 用戶 等待 apt service() 傳遞數據 length 歡迎大家前往騰訊雲技術社區,獲取更多騰訊海量技術實踐幹貨哦~ 作者:朱勝 導語 藍牙在日常生活中廣泛使用的一項技術,小程序給了我們前端工程師一個控制藍牙的方法

感悟:決定一個系統走勢是因素構成而非單一因素決定。

.get key eve while src 一個數 遺傳 隨機 初始化 例如癌癥,醫生常說抽煙致癌,不要抽煙,但實際生活中抽煙長壽的人不少,我的姨婆九十多歲了,每日抽煙喝酒,身體也不錯。決定癌癥的因素很多,例如遺傳,飲食,起居時間,居住環境,化工汙染等等。下圖轉自一份醫學

最新版 INSPINIA IN+ - WebApp Admin Theme v2.7.1包含asp.net MVC5示例代碼做管理系統最佳的選擇。

代碼 ima height href logs spin 選擇 com .cn 下載地址:http://download.csdn.net/download/wulang1988/10039402 最新版 INSPINIA IN+ - WebApp Admin Theme

十二、事件委托泛型委托集合(泛型和非泛型)Lambda表達式(聲明委托使用委托簡單的委托示例action<T>和func<t>委托播委托匿名方法Lambda表達式參數事件)

multicast new 調用方法 多播 ted 被調用 輸入參數 pac cas 事件(Event) 事件是一種對象或類能夠提供通知的成員,客戶端可以通過提供事件處理程序為相應的事件可添加可執行代碼,事件可以理解為一種特殊的委托。 委托(Delegate) 委托是存有對

回調函數參數問題閉包解決方案示例

length fun spa nts .get tel col onclick clas 1.function init4() { 2. var pAry = document.getElementsByTagName("p"); 3. fo

【算法與數據結構實戰】線性表操作-實現A並B結果放入A

!= 實現 push 集合 div 中間 for iter 和數 //數據結構與算法基礎題1:線性表操作,實現A並B,結果放入A中 #include "stdafx.h" #include <iostream> #include <string>

Python學習:5、if語句while語句函數以及商城示例

else 並且 參數傳遞 class color code 多個參數 else語句 參數 條件控制語句 if語句 簡單if判斷語句,當if後面的條件為真的時候,執行print(‘yes‘),否則執行else裏面的語句,print(‘No‘) if True: pr

概率軟邏輯(PSLProbabilistic soft logic)示例演練和模塊解釋

keyword sant 一個 bre att database specific ecif 改變 這裏將引導您完成Simple Acquaintances示例的Groovy版本。 一、建立示例項目 ??首先,確保您的系統滿足先決條件。然後克隆psl-examples存儲庫

入門python程式:分支迴圈break和continue使用示例

分支迴圈是用腦示例 score = int(input("請輸入一個分數:")) if 100 > score >=90 : print("A") elif 90 > score >=80: print("B") elif 80 > scor

Oracle 使用DBMS_JOB和DBMS_SCHEDULER 建立定時任務 建立管理job示例

  使用DBMS_JOB和DBMS_SCHEDULER建立、管理job示例 原創 Oracle 作者:Hoegh 時間:2015-04-28 16:52:41  6439  0     &

oozie錯誤:job一直在running或者SUSPENDED但是就是不執行任務單獨執行是可以的。

1.問題描述 一個簡單的mapreduce的wordcount任務,單獨使用yarn呼叫時沒有任何問題,可以跑出來。但是,放入yarn的時候,就會出現問題。一直時Running的狀態,而且hadoop對應目錄下也沒有輸出結果的目錄,很是頭痛。   2.原因: 經過百般

說明Linux系統上命令的使用格式;介紹一些命令的使用並配合相應的示例來闡述

什麼是命令 1.命令格式: COMMAND [OPTIONS] ARGUMENTS CMMMAND:發起一命令:請求核心將某個二進位制程式執行為一個程序; 命令請求kernel將某個二進位制程式執行為一個程序。程式本身只是一個靜態檔案,只有通過這個請求,才會轉化

sklearnlr模型的評價指標函式含義及應用程式碼示例

一、從線性迴歸到邏輯迴歸 線性迴歸解決的是連續型數值的預測問題,例如預測房價,產品銷量等。 邏輯迴歸解決的是分類問題,從分類數量上看,有二項分類和多項分類。 二、邏輯迴歸基本概念 三、模型效果評估 準確率 準確率 = 正確預測數 / 測試集樣本數 Sciki

ajax請求成功之後返回的資料怎樣顯示到頁面跟隨表單一起提交

.val用來獲取input框內輸入的值 ajax裡 $("#imageSrc").val(data); // 獲取到輸入的值 對應html裡 < input name=“data[imageSrc]” id=“imageSrc” type=“hidden”> .html,用來

python3 keras獲取GRU的每一個時刻的輸出,切分GRU的輸出示例

1. keras的GRU很好用,return_sequences,False 返回單個, true 返回全部time step 的 hidden state值。 2. 但是keras的time step是根據輸入決定的,這裡我們在處理的時候,可能就需要分割以下某一層的資料,然後輸入到後面的不

求共同好友job運用

package bd1805day09; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop.conf.Configur