Azkaban-3.x 頁面操作手冊
- 2019 年 10 月 10 日
- 筆記
1. 創建Flow
使用Azkaban Flow 2.0 來創建任務流,Flow 1.0 將被廢棄
- 創建一個名為
flow20.project
的文本文件,添加如下內容用以說明這是一個Azkaban Flow 2.0的項目:
azkaban-flow-version: 2.0
- 創建一個名為
basic.flow
的文本文件,其中定義了一個project中所有需要運行的job,使用name
和type
來定義一個job,大部分job都會需要config
這個配置,詳細的內容在下文中說明,這裡只是一個簡單的示例:
nodes: - name: jobA type: command config: command: echo "This is an echoed text."
- 選擇上面創建好的兩個文件,然後將其壓縮為一個名為
Archive.zip
的zip文件,注意,是把兩個文件壓縮為一個文件,Linux中的操作如下:
[hadoop@beh07 tmp]$ mkdir zip-test [hadoop@beh07 tmp]$ mv flow20.project basic.flow zip-test/ [hadoop@beh07 tmp]$ cd zip-test/ # 將目錄下的所有文件打成一個zip包 [hadoop@beh07 zip-test]$ zip -r Archive.zip . # 錯誤操作 # 這是把zip-test這個目錄打成一個zip包 [hadoop@beh07 tmp]$ zip -r Archive.zip zip-test
2. 創建Project
登錄Azkaban

登錄到Azkaban後,將看到Project
頁面。 此頁面將顯示當前用戶擁有讀取許可權的所有項目的列表。如果用戶所在的組對某個項目具有READ或ADMIN許可權,而用戶本身不具有這些許可權,那麼這個項目不會在這裡列出。我這裡是第一次登陸,還沒有創建過任何項目。

創建Project



單擊Permissions
標籤可以對此項目進行許可權管理

3. 上傳Project

上傳我們準備好的Archive.zip
文件,Azkaban目前只支援上傳zip文件,上傳後Azkaban將驗證zip文件中的內容,檢查Flow的依賴關係,遇到任何無效的Flow例如循環依賴的Flow,都會宣告上傳失敗。
新上傳的Flow將會覆蓋此項目中之前已經存在的Flow,成功上傳之後,會在螢幕上列出所有的Flow。



4. 查看Flow

你會看到圖形化顯示的Flows,右鍵單擊job,還可以查看job的詳細資訊

單擊Executions
標籤頁可以查看此項目以往的調度情況

5. Project許可權管理
創建項目時,將自動為創建者賦予該項目的ADMIN許可權。 創建者可以查看,上傳,修改作業,調度作業,刪除項目以及給項目添加用戶許可權。 具有ADMIN許可權的用戶可以刪除其他ADMIN用戶,但不能刪除自己。 這是為了防止項目成為「無人管」的項目,在許可權頁面上,ADMIN可以將其他用戶,組或代理用戶添加到項目中。

添加用戶(此用戶必須存在)並為其設置對本項目的許可權:

刪除用戶對本項目的許可權只要取消對任意許可權的勾選,並提交即可。
組許可權設置組中的每個人都具有指定的許可權。 可以通過勾選許可權來設置組許可權,通過取消選中組許可權來刪除組許可權。
如果在用戶配置中添加了代理用戶:
<!-- proxy配置只是說azkaban用戶可以代理系統用戶user1和user2,但是否代理需要在頁面配置 --> <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" proxy="user1,user2" />
那麼添加代理用戶,就會允許Project以這些用戶身份運行。添加後,通過點擊Rmove
按鈕將其刪除。
此頁面支援添加或刪除的5種許可權如下:
許可權名 |
說明 |
---|---|
ADMIN |
具有所有許可權 |
READ |
只能訪問每個project,並且查看project的日誌 |
WRITE |
可以上傳文件,修改任務屬性,刪除project |
EXECUTE |
可以啟動任務 |
SCHEDULE |
可以調度任務 |
|
|
6. 運行Flow

(1) 禁用job功能
你可以禁用某些job,禁用後該job將顯示為透明的,並在整個flow執行過程中被忽略,選項Parents
代表禁用job及其依賴的上一個job,Childern
代表禁用job及依賴其的下一個job,Ancestors
代表禁用job及其依賴的全部job,Descendents
代表禁用job及依賴其的全部job, All
代表禁用與此job有依賴關係的全部job。

(2) Notification
Notification
標籤頁中可以配置Flow運行成功或失敗之後的通知行為

- First Failure:只有Flow中有任一job運行失敗就發送郵件通知
- Flow Finished:即使某個job運行失敗,也要運行完Flow中的全部job後再進行通知
Azkaban配置通知郵件的地方有3處
- azkaban.properties # 通知郵件的發送者 [email protected] # 發送通知郵件的伺服器 mail.host=smtp.163.com # 郵件發送者的帳號和密碼 [email protected] mail.password= # 這裡配置任務執行成功或失敗後將通知郵件發送給誰 [email protected] job.success.email=
- 在flow的定義文件
xxx.flow
中配置 config: user.to.proxy: foo failure.emails: [email protected] - 在
Notification
標籤頁面配置,可以填寫多個郵箱地址,用逗號,空格或分號分隔。
(3) Failure Options

當job運行失敗後,你可以進行如下操作:
- Finish Current Running:嘗試繼續執行其他的正在運行的job,未運行的job將不會嘗試開始運行,期間將Flow的狀態設置為
FAILED FINISHING
,Flow運行失敗後將狀態改為FAILED
。 - Cancel All:停止所有Flow中的其他job,宣告此Flow運行失敗
- Finish All Possible:嘗試繼續執行其他的job(包括已經在運行的和還未運行的),期間將Flow的狀態設置為
FAILED FINISHING
,Flow運行失敗後將狀態改為FAILED
。
(4) Concurrent Options
如果希望運行多個相同的Flow,可以選擇以下配置

- Skip Execution:如果Flow已經在運行,不會再調用它
- Run Concurrently:無論Flow是否在運行都會運行,但是選擇不同的工作目錄
- Pipeline:並發運行多個Flow
- Level 1: 前一個Flow的JobA結束後開始運行當前Flow的JobA
- Level 2: 前一個Flow的JobA及其下游的Job全部完成後,開始運行當前Flow
(5) Flow Parameters
在此處配置參數,覆蓋Flow的全局屬性

然後點擊Execute
就可以手動運行該Flow。
7. Flow運行頁面

這個頁面很像剛上傳zip文件之後查看Flow那個頁面,但此頁面中的內容包含了更多資訊。
在Job List
標籤頁可以看到Flow中全部Job執行情況的詳細資訊和日誌。只要全部Job執行未完成,此頁面將自動更新資訊。你可以對正在執行的流程進行一些操作包括:
- Cancel:殺死所有正在運行的作業,並立即宣告Flow失敗。 Flow狀態為
KILLED
; - Pause:阻止新作業運行。 當前正在運行的作業照常進行;
- Resume:恢復暫停的執行;
- Retry Failed:在Flow仍處於
FAILED FINISHING
狀態時,重試所有狀態為FAILED
的Job,重試期間顯示Attempts
提示; - Prepare Execution:使Job進入準備運行的配置頁面,僅在已完成的Job(無論運行成功或失敗)上可用, 自動忽略成功完成的Job。

image
點擊Details
按鈕可以查看Job的詳細資訊,包括運行過程中產生的日誌以及Job Summary

image

image
Job Summary
中包含以下資訊:
- Job Type
- Command Summary :啟動Job過程的命令以及諸如類路徑和記憶體設置之類的資訊
- Pig/Hive Job Summary: 特定於Pig和Hive Job的自定義統計資訊
- Map Reduce Jobs:已啟動的MapReduce作業的ID列表,可以鏈接到yarn的Track URL
在頂級Executing
標籤頁面,你會看到多個Project中的所有正在運行的Job以及所有已經完成的Job的描述資訊。

History
標籤頁面包括所有的正在運行的、已經完成的Job的描述資訊。

image
8. Job資訊頁面
打開Job資訊頁面

此頁面顯示Job的依賴關係和從屬關係以及該Job使用的全局屬性。

點擊Edit
按鈕,可以修改Job的屬性,但是一些關鍵資訊例如type
和dependencies
是無法修改的,而且必須在Job未運行前修改才可以生效,新上傳的zip文件將會覆蓋這些修改。

點擊History
按鈕可以查看所有Job的資訊


點擊Logs
可以查看該Job運行期間產生的日誌。
9. 調度

調度後將顯示調度資訊,你可以刪除此次調度

點擊Set SLA
可以配置SLA相關資訊

以上圖片示例中配置的意思是,如果Flow basic的SUCCESS狀態持續超過20min,就把警告資訊郵件給[email protected],如果JobA的FINISH狀態持續10min以上,當勾選Email Action時,就會發郵件警告,當勾選Kill Action時,就會直接Kill JobA。
全文完畢。