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,使用nametype來定義一個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的屬性,但是一些關鍵資訊例如typedependencies是無法修改的,而且必須在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。

全文完畢。