1. 程式人生 > >分布式工作流任務調度系統Easy Scheduler正式開源

分布式工作流任務調度系統Easy Scheduler正式開源

其中 方式 優先級 部分 手動 -- 截圖 關聯 參數設置

分布式工作流任務調度系統Easy Scheduler正式開源

技術分享圖片

1、背景

在多位技術小夥伴的努力下,經過近2年的研發叠代、內部業務剝離及重構,也經歷一批種子用戶試用一段時間後,EasyScheduler終於迎來了第一個正式開源發布版本 -- 1.0.0。
相信做過數據處理的夥伴們對開源的調度系統如oozie、azkaban、airflow應該都不陌生,在使用這些調度系統中可能會有這樣的體驗:比如配置工作流任務不能可視化、任務的運行狀態不能實時在線查看、
任務運行時不能暫停、不能支持參數傳遞、不能補數、不能多租戶使用、調度系統不高可用等等問題所煩擾過。Easy Scheduler正是在這種背景下應運而生,其目標就是為使調度更加easy,更可以從其中文名“易調度”看出我們的初衷。

2、設計特點

Easy Scheduler是一個分布式工作流任務調度系統,主要解決數據研發ETL錯綜復雜的依賴關系所帶來的各種問題。
其主要目標如下:

  • 以DAG圖的方式將Task按照任務的依賴關系關聯起來,可實時可視化監控任務的運行狀態
  • 支持豐富的任務類型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql),Python,Sub_Process、Procedure等
  • 支持工作流定時調度、依賴調度、手動調度、手動暫停/停止/恢復,同時支持失敗重試/告警、從指定節點恢復失敗、Kill任務等操作
  • 支持工作流優先級、任務優先級及任務的故障轉移及任務超時告警/失敗
  • 支持工作流全局參數及節點自定義參數設置
  • 支持資源文件的在線上傳/下載,管理等,支持在線文件創建、編輯
  • 支持任務日誌在線查看及滾動、在線下載日誌等
  • 實現集群HA,通過Zookeeper實現Master集群和Worker集群去中心化
  • 支持對Master/Worker cpu load,memory,cpu在線查看
  • 支持工作流運行歷史樹形/甘特圖展示、支持任務狀態統計、流程狀態統計
  • 支持補數
  • 支持多租戶
  • 支持國際化
  • 還有更多等待夥伴們探索

4、與同類調度系統的對比

技術分享圖片

5、系統部分截圖

技術分享圖片

技術分享圖片

技術分享圖片

6、文檔

  • Easy Scheduler後端部署文檔
  • Easy Scheduler前端部署文檔
  • Easy Scheduler使用手冊

更多文檔請參考:
Easy Scheduler中文在線文檔

7、感謝

Easy Scheduler使用了很多優秀的開源項目,比如google的guava、guice、grpc,netty,ali的bonecp,quartz,以及apache的眾多開源項目等等,我們也非常感謝oozie、azkaban、airflow等優秀調度作品的出現帶給我們的啟發,
正是由於站在這些開源項目的肩膀上,才有Easy Scheduler的誕生的可能。對此我們對使用的所有開源軟件表示非常的感謝!我們也希望自己不僅是開源的受益者,也能成為開源的
貢獻者,於是我們決定把易調度貢獻出來,並承諾長期維護。也希望對開源有同樣熱情和信念的夥伴加入進來,一起為開源獻出一份力!

8、後記

Easy Scheduler於2019.03.28號正式開源後,僅僅一周時間,我們就感受到了夥伴們對Easy Scheduler的極大熱情,很多夥伴提出使用反饋,還有一些夥伴是直接就找到相應的源代碼來提問題或給出更好的建議、甚至直接在Easy Scheduler上擼袖子寫代碼,
這給我們目前的主要開發者予以極大的精神鼓舞,非常感謝夥伴們這麽熱情和信任我們,我們會和大家一道繼續奔走在使調度系統開箱即用這條大道上,為使"數據能力平民化"添磚加瓦,為數據時代貢獻自己的激情和汗水!

開源github地址:https://github.com/analysys/EasyScheduler

在線文檔地址:https://analysys.github.io/easyscheduler_docs_cn

分布式工作流任務調度系統Easy Scheduler正式開源