1. 程式人生 > >Azkaban使用簡單筆記

Azkaban使用簡單筆記

server height sleep 多個 新的 prop pro 訪問 郵件

官方文檔:http://azkaban.github.io/


Azkaban主要的組成:
1. 關系型數據庫——MySQL
2. AzkabanWebServer
3. AzkabanExcutorServer


使用MySQL存儲狀態,AzkabanWebServer和AzkabanExcutorServer訪問數據庫。
AzkabanWebServer主要管理者Azkaban,主要進行了項目管理、身份驗證、調度和監控執行。並且為用戶界面。


使用方法:
登錄Azkaban環境登錄賬號和密碼之後將會看到一個項目列表界面。

點擊創建項目就可以創建安新的項目,創建名稱可以第一次命名之後不能再次改變,項目描述可以改變。創建好項目之後,就會進入項目界面,如果沒有相關按鈕,則說明用戶沒有相關權限,現在為一個空項目。

上傳項目,點擊Upload就可以上傳項目,項目可以上zip文件,zip裏需要包含*.job文件和其他需要運行的job。Job名稱必須唯一。

創建流程:
Job為一條在Azkaban中運行的進程。這些Job可以依賴於其他Job。一組Job和他們的所依賴構成了Flow
先創建job文件,文件後綴為*.job。

1 #test.job
2 type=command #job類型為command
3 command=echo "hello world"    #command用來執行命令


這段job是執行一個用來打印hello world的命令的。輸出的內容會顯示在Azkaban的Web UI中。
PS:標準輸出和標準錯誤都會寫到log中,可以在Web UI中查看。

創建一個流程:
一個流程是一個依賴其他job的job。其他依賴項經常會運行在這個流程job之前。

1 #this is flow bar.job
2 type=command
3 dependencies=test
4 command=echo bar


這個job依賴於之前的test.job

在Azkaban中,type值得是運行的類型,command指的是一條Linux命令,同時Azkaban還支持python,java等直接運行,也就可以是hadoop的shell。

一個流程也可以作為一個節點嵌入到其他job文件中,形成嵌入流

type=flow
flow.name=bar


這樣嵌入到了另一個job中去

技術分享


一個簡單的例子
文件test.sh

1 #!/bin/bash
2 echo "hello world"

文件aztest.job

1 # aztest.job
2 type=command
3 command=sh test.sh

文件zatest.properties

user.to.proxy=Hadoop

將這三個文件打包為zip包:

zip aztestlh.zip aztest.job aztest.properties test.sh

然後上傳文件到Azkaban

上傳完成值後就可以看到相關信息了

點擊Execute Flow就可以運行

運行成功之後,圖的底色會變成綠色:

查看日誌信息可以看到我們之前的shell腳本輸出的內容:


運行job的另一個方式就是定時,也就類似於cron,一個Azkaban項目就是定時腳本執行的調度器。

一個Flow的例子:
定義多個job以及job之間的依賴就可以組成flow。定義依賴可以使用dependencies參數就可以了。例如創建了4個job:

 1 start.job
 2 type=command
 3 command=echo "start execute"
 4 test.job
 5 type=command
 6 command=echo "Hello World"
 7 sleep.job
 8 type=command
 9 dependencies=test, start
10 finish.job
11 type=command
12 dependencies=sleep

有著四個job文件組成的為一個流,我們可以看到流的組成方式為job相互依賴的,將該Flow上傳上去之後,Azkaban會將該流裏的job以圖的形式展示出來。

PS:Azkaban在執行完畢之後說的成功和失敗,指的是job文件的成功和失敗,並不是job文件所執行的其他文件失敗與否。

發送郵件
Azkaban為我們的提供了任務執行的job結果成功失敗的郵件提示。

Azkaban為我們提供了3種執行發送消息的選擇,分別為失敗了發送郵件,失敗發送短信和成功發送郵件。可以進行相關設置在對應的時候發送相關信息。

Azkaban使用簡單筆記