Azkaban 3.73.1 使用簡介


本文上接《Azkaban 3.73.1 集群搭建(Multiple Executor)》,對Azkaban的使用做簡單說明

目錄

簡介

AzkabanWebServer中的三個主要元素:project、job、flow

  • project:工程/項目
  • job:任務,project中包含的需要執行的任務
  • flow:工作流,由各個job之間的依賴關系所組成

1. 登錄

  1. 因為使用了SSl所以是 https
  2. host為啟動WebServer服務的機器ip
  3. port為azkaban-web/conf/azkaban.properties中配置的jetty.ssl.port=8443
  4. 賬號密碼為 azkaban-web/conf/azkaban-users.xml 中配置的

2. 創建工程

首頁四個重要的菜單

菜單 備注
projects 工程,最重要的部分,所有flows都在工程中運行
scheduling 顯示定時任務
executing 顯示當前運行的任務
history 顯示歷史運行任務

在“projects”菜單下點擊“Create Project”完成創建工程,注意請使用英文,中文會報錯

3. 創建job

  • web頁面中並沒有提供創建job的功能
  • 需要自行創建以.job為擴展名的文件,並將創其通過web頁面上傳,才能形成job任務
  • 所有的job都需要有一個知道他們如何去執行的type,附:Azkaban Jobtypes 文檔
  • .job文件中常用的參數,如下

    參數 備注
    dependencies 定義依賴關系,參數值為該job依賴的任務文件名(不包括.job后綴)
    如果依賴多個,則以逗號分隔,如:job2,job5
    retries 任務失敗時自動重啟的次數
    retry.backoff 每一次任務嘗試重啟時之間等待的毫秒數
    working.dir 重新指定任務執行的工作目錄,默認為目前正在運行的任務的工作目錄
    failure.emails 任務失敗時的郵件提醒設置,以逗號分隔多個郵箱
    success.emails 任務成功時的郵件提醒設置,以逗號分隔多個郵箱
    notify.emails 任務無論失敗還是成功都郵件提醒設置,以逗號分隔多個郵箱

3.1 創建 .job 文件

使用 command type 舉例:

job1

# 文件名:test_1.job
type=command
command=echo "This is a test job, name is test_1."
retries=5

job2

# 文件名:test_2.job
type=command
dependencies=test_1
retries=5
command=echo "This is a test job, name is test_2."
command.1=pwd
command.2=ls –l /tmp

job3

# 文件名:test_3.job
type=command
dependencies=test_1
retries=5
command=echo "This is a test job, name is test_3."
command.1=sh /opt/azkaban/job/test_script.sh

注意:/opt/azkaban/job/test_script.sh 為事先在服務器上寫好的腳本,且強烈建議使用這種形式,后期維護時,只需修改此文件內容就可以了

job4

# 文件名:test_4.job
type=command
dependencies=test_2,test_3
retries=5
command=echo "This is a test job, name is test_4."
command.1=netstat -ntlp

job5

# 文件名:test_5.job
type=command
dependencies=test_4
retries=5
command=echo "This is a test job, name is test_5."
command.1=whoami

3.2 打包

壓縮所有.job文件到同一個.zip文件中

  • 必須是zip壓縮文件,當前僅支持zip
  • 所有文件必須在壓縮包的根目錄中,沒有子目錄

3.3 創建Flow

  • 上傳打包好的zip文件,進而生成一個Flow
  • Flow的名稱為最后一個沒有依賴的.job文件的文件名

選擇工程,直接點擊“工程名”

工程頁面的三個菜單

菜單 備注
Flows 工作流程,有多個job組成
Permissions 權限管理
Project Logs 工程日志

工程頁面的三個按鈕

按鈕 備注
Delete Project 刪除該工程
Upload 上傳zip文件,進而生成Flow
Download 下載工程

點擊“Upload”上傳zip

3.4 運行Flow

Flow的三個操作按鈕

按鈕 備注
Execute Flow 配置或執行Flow
Executions Flow的執行記錄
Summary Flow的總結

點擊“Execute Flow”配置執行該流程

Execute Flow 的幾個菜單

菜單 備注
Flow view 流程視圖,“右鍵”可以禁用/啟用某些job
Notification 定義任務成功或者失敗是否發送郵件
Failure Options 定義一個job失敗,剩下的job怎么執行
Concurrent 並行任務執行設置
Flow Parametters 參數設置

點擊左下方的“Schedule”可設置定時執行,下方綠色字體為執行時間的提示

點擊右下方“Execute”執行該Flow

“Continue”之后可以直接看到Flow的運行結果,“綠色”成功、“藍色”執行中、“紅色”失敗

可查看每一個job的運行日志,如果有報錯,也可以直接查看錯誤日志

首次運行是可能的報錯

ERROR [ExecutorServlet] [Azkaban] executor became inactive before setting up the flow 1
azkaban.executor.ExecutorManagerException: executor became inactive before setting up the flow 1


需要手動去激活一下 executor,方式如下:

curl http://${executorHost}:${executorPort}/executor?action=activate

附錄

參考

  1. 官方:https://azkaban.github.io/azkaban/docs/latest/#creating-flows
  2. https://juejin.im/post/5c8a289151882504715038cc
  3. https://www.jianshu.com/p/01188607a794
  4. http://www.jobplus.com.cn/article/getArticleDetail/51461

例子源碼

https://github.com/remainsu/azkaban_job


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM