azkaban調度系統(tǒng)擴展

azkaban


azkaban是一款非常給力的調度系統(tǒng),由Linkedin開源,有以下主要功能:

  • Web用戶界面
  • 調度工作流
  • 認證/授權(權限的工作)
  • 工作流和任務的日志記錄和審計

azkaban_assistant


github地址
在nice內部使用過程中,對azkaban進行了擴展,實現了以下功能:

  • 任務管理WEB化(再也不用管理一堆文件了)
  • 遠程服務調用(所有任務都是執(zhí)行遠程服務腳本)
  • 報警擴展(每個任務都可以配置郵件及短信報警了)
  • 跨流程的依賴選項(跨項目甚至是跨時間維度的任務依賴)
  • 圖形化依賴配置(拖來拖去就把依賴關系配好了)
  • LDAP權限認證(不用再給每一個人添加帳號了)
job管理鏈接
?管理頁面
?編輯頁面
編輯頁面
外部依賴配置
?DAG拖拽?更新

安裝部署


基于azkaban-2.5.0開發(fā),對源文件有所改動

環(huán)境準備

  1. 安裝python,以及依賴模塊tornado、paramiko
  2. 創(chuàng)建azkaban數據庫,導入resources/azkaban_create_table.sql (比原生多了兩張表)

配置更新

  1. 更新azkaban-executor/azkaban-web的配置文件(默認你們已經懂azkaban了,不清楚百度/谷歌)
  2. 更新schedule/conf/nice.cfg
  3. 工程azkaban-web中使用LDAP管理用戶,提供了admin/admin_pwd這個默認超級管理員帳號。如果不支持LDAP,可改為默認方式,維護azkaban-users.xml中的用戶即可

服務啟動

  1. 分別啟動azkaban-executor/azkaban-web
  2. 啟動job管理服務:schedule/webapp下執(zhí)行startup.sh/restart.sh,查看schedule_web.log日志是否有報錯
  3. 登陸https://hostname:8443,先創(chuàng)建項目,再點擊“任務配置”進行配置

azkaban基礎可參考

需要注意的地方

  1. 因為所有任務都是遠程服務調用,所以需要提前打通azkaban啟動用戶到各服務器的ssh權限!!!
  2. 郵件、短信接口已預留好,在schdule/util/alarm.py自定義,默認只在日志中打印出信息
  3. 遠程腳本是否正常結束,是通過shell執(zhí)行script execute status ["$?"](最后一個命令的狀態(tài)返回值)來判斷的,所以下面的腳本:

sh test.sh

echooo 'hello world'
echo 'hello world'

雖然第一行出錯,但最后一行繼續(xù)執(zhí)行并返回正確(相當于第一行的異常被捕獲了),所以腳本仍認為是成功。使用的時候需要注意下

  1. 在azkaban頁面上kill任務時,僅會kill本地監(jiān)聽的腳本,遠程腳本會繼續(xù)執(zhí)行下去(該特性暫時不做調整)

關于nice


專注于圖片與標簽的社交APP~

內部wiki親情大放送


http://note.youdao.com/noteshare?id=395820b77024d74f4e4914cb13ef5e5f

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容