007.Azkaban-3.x 頁面操作手冊

1. 創(chuàng)建Flow

使用Azkaban Flow 2.0 來創(chuàng)建任務流,F(xiàn)low 1.0 將被廢棄

  • 創(chuàng)建一個名為flow20.project的文本文件,添加如下內容用以說明這是一個Azkaban Flow 2.0的項目:
azkaban-flow-version: 2.0
  • 創(chuàng)建一個名為basic.flow的文本文件,其中定義了一個project中所有需要運行的job,使用nametype來定義一個job,大部分job都會需要config這個配置,詳細的內容在下文中說明,這里只是一個簡單的示例:
nodes:
  - name: jobA
    type: command
    config:
      command: echo "This is an echoed text."
  • 選擇上面創(chuàng)建好的兩個文件,然后將其壓縮為一個名為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. 創(chuàng)建Project

登錄Azkaban

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

創(chuàng)建Project

單擊Permissions標簽可以對此項目進行權限管理

3. 上傳Project

上傳我們準備好的Archive.zip文件,Azkaban目前只支持上傳zip文件,上傳后Azkaban將驗證zip文件中的內容,檢查Flow的依賴關系,遇到任何無效的Flow例如循環(huán)依賴的Flow,都會宣告上傳失敗。

新上傳的Flow將會覆蓋此項目中之前已經(jīng)存在的Flow,成功上傳之后,會在屏幕上列出所有的Flow。

4. 查看Flow

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

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

5. Project權限管理

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

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

刪除用戶對本項目的權限只要取消對任意權限的勾選,并提交即可。

組權限設置組中的每個人都具有指定的權限。 可以通過勾選權限來設置組權限,通過取消選中組權限來刪除組權限。

如果在用戶配置中添加了代理用戶:

<!-- proxy配置只是說azkaban用戶可以代理系統(tǒng)用戶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執(zhí)行過程中被忽略,選項Parents代表禁用job及其依賴的上一個job,Childern代表禁用job及依賴其的下一個job,Ancestors代表禁用job及其依賴的全部job,Descendents代表禁用job及依賴其的全部job, All代表禁用與此job有依賴關系的全部job。

(2) Notification

Notification標簽頁中可以配置Flow運行成功或失敗之后的通知行為

  • First Failure:只有Flow中有任一job運行失敗就發(fā)送郵件通知
  • Flow Finished:即使某個job運行失敗,也要運行完Flow中的全部job后再進行通知

Azkaban配置通知郵件的地方有3處

  • azkaban.properties

    # 通知郵件的發(fā)送者
    mail.sender=xxx@163.com
    # 發(fā)送通知郵件的服務器
    mail.host=smtp.163.com
    # 郵件發(fā)送者的賬號和密碼
    mail.user=xxx@163.com
    mail.password=
    
    # 這里配置任務執(zhí)行成功或失敗后將通知郵件發(fā)送給誰
    job.failure.email=422926963@qq.com
    job.success.email=
    
  • 在flow的定義文件xxx.flow中配置

    config:
      user.to.proxy: foo
      failure.emails: noreply@foo.com
    
  • Notification標簽頁面配置,可以填寫多個郵箱地址,用逗號,空格或分號分隔。

(3) Failure Options

當job運行失敗后,你可以進行如下操作:

  • Finish Current Running:嘗試繼續(xù)執(zhí)行其他的正在運行的job,未運行的job將不會嘗試開始運行,期間將Flow的狀態(tài)設置為FAILED FINISHING,F(xiàn)low運行失敗后將狀態(tài)改為FAILED。
  • Cancel All:停止所有Flow中的其他job,宣告此Flow運行失敗
  • Finish All Possible:嘗試繼續(xù)執(zhí)行其他的job(包括已經(jīng)在運行的和還未運行的),期間將Flow的狀態(tài)設置為FAILED FINISHING,F(xiàn)low運行失敗后將狀態(tài)改為FAILED。

(4) Concurrent Options

如果希望運行多個相同的Flow,可以選擇以下配置

  • Skip Execution:如果Flow已經(jīng)在運行,不會再調用它

  • Run Concurrently:無論Flow是否在運行都會運行,但是選擇不同的工作目錄

  • Pipeline:并發(fā)運行多個Flow

    • Level 1: 前一個Flow的JobA結束后開始運行當前Flow的JobA
    • Level 2: 前一個Flow的JobA及其下游的Job全部完成后,開始運行當前Flow

(5) Flow Parameters

在此處配置參數(shù),覆蓋Flow的全局屬性

然后點擊Execute就可以手動運行該Flow。

7. Flow運行頁面

這個頁面很像剛上傳zip文件之后查看Flow那個頁面,但此頁面中的內容包含了更多信息。

Job List標簽頁可以看到Flow中全部Job執(zhí)行情況的詳細信息和日志。只要全部Job執(zhí)行未完成,此頁面將自動更新信息。你可以對正在執(zhí)行的流程進行一些操作包括:

  • Cancel:殺死所有正在運行的作業(yè),并立即宣告Flow失敗。 Flow狀態(tài)為KILLED;
  • Pause:阻止新作業(yè)運行。 當前正在運行的作業(yè)照常進行;
  • Resume:恢復暫停的執(zhí)行;
  • Retry Failed:在Flow仍處于FAILED FINISHING狀態(tài)時,重試所有狀態(tài)為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的自定義統(tǒng)計信息
  • Map Reduce Jobs:已啟動的MapReduce作業(yè)的ID列表,可以鏈接到y(tǒng)arn的Track URL

在頂級Executing標簽頁面,你會看到多個Project中的所有正在運行的Job以及所有已經(jīng)完成的Job的描述信息。

History標簽頁面包括所有的正在運行的、已經(jīng)完成的Job的描述信息。

image

8. Job信息頁面

打開Job信息頁面

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

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

點擊History按鈕可以查看所有Job的信息

點擊Logs可以查看該Job運行期間產生的日志。

9. 調度

調度后將顯示調度信息,你可以刪除此次調度

點擊Set SLA可以配置SLA相關信息

以上圖片示例中配置的意思是,如果Flow basic的SUCCESS狀態(tài)持續(xù)超過20min,就把警告信息郵件給xxx@163.com,如果JobA的FINISH狀態(tài)持續(xù)10min以上,當勾選Email Action時,就會發(fā)郵件警告,當勾選Kill Action時,就會直接Kill JobA。

全文完畢。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容