Schedulis 是微眾銀行基於 LinkedIn 的開源專案 Azkaban 開發的一款工作流任務排程系統,用於解決金融級場景下,大量批次作業任務的複雜依賴、靈活排程。
開源連結:
gitee地址: https://gitee.com/WeBank/Schedulis ;
github地址:https://github.com/WeBankFinTech/Schedulis
Schedulis 是一個分散式工作流任務排程系統。其支援常規的 Command Shell 和 Linkis(HadoopMR、 Hive、Spark、Sqoop、 Python)大資料任務;同時還支援特色的資料檢查和工作流之間的依賴任務,支援完善的告警和工作流執行策略;提供多種型別的引數設定,動態全域性變數和簡單易用的 UI;該排程系統還具備高效能,高可用(去中心化多排程中心和多執行器)和多租戶資源隔離等金融級特性;現已被整合到資料應用開發門戶 DataSphere Studio。
完善
• 豐富的任務型別:支援常規的Command Shell和自身特色的資料檢查DataChecker和工作流之間的依賴任務EventChecker,並且支援基於Linkis平臺提供的大資料任務 (HadoopMR, Hive, Spark, Sqoop, Python)。
•多樣化的任務排程方式:透過靈活的配置可以自由的組織工作流,支援工作流的臨時執行,定時排程,迴圈執行,條件執行和同一工作流的併發執行。
•多級別的變數引數設定:系統預設引數,使用者級別靜態全域性變數,引數配置檔案properties,系統臨時全域性引數,工作流動態全域性變數。
•完善的告警策略:工作流和作業粒度的事件告警和超時告警。
•充足的容錯能力:支援多種失敗策略,包括完成所有可以執行的任務,完成當前正在執行的任務,結束所有正在執行的任務,暫停執行的工作流;並且可以對子工作流/任務設定失敗自動重跑次數以及失敗跳過策略。
連通
與 DataSphere Studio 和 Linkis 上下連通:DSS將編輯好的工作流一鍵釋出到Schedulis進行排程,而Schedulis將任務向Linkis提交,從而實現資料應用開發全流程的連貫順滑使用者體驗。
管理
•使用者管理:和LDAP系統打通,可LDAP賬號登陸,支援使用者的不同許可權以及對使用者的增刪修改
•部門管理:統一的部門管理介面,支援對部門的增刪修改以及設定和修改部門所在的資源組
•資源管理:對不同的資源組進行物理隔離,實現系統的多租戶管理方案,保證系統的安全和可靠。
金融級
多個去中心化的排程節點和執行節點,以此增強管理節點的穩定性,避免了單點故障風險,減少系統不能提供服務的時間,最佳化使用者使用體驗。
如上圖所示,在技術架構層面上,Schedulis的三個主要核心數點是: WebServer,ExecServer以及DB。
•WebServer
主要負責提交任務到佇列,輪詢佇列中的任務提交到Executor,採集Executor的健康狀態。
•ExecutorServer
ExecutorServer主要負責任務的拆分,規劃和執行。
•DB
DB 主要負責系統資料的儲存,在HA 模式下同時充當著分散式鎖的職責,對所有併發操作進行執行緒安全管理。
WeDataSphere是一套一站式、金融級、開源開放大資料平臺套件,已在國內最大線上銀行WeBank,經過了數年海量嚴苛金融業務場景的打磨和驗證,表現卓越。
更多關於 WeDataSphere 的介紹,
請訪問:https://github.com/WeBankFinTech/WeDataSphere
Schedulis ,是WeDataSphere的資料工具組建之一, 已經與 DataSphere Studio 和 Linkis 的對接,DataSphere Studio 可以將編輯好的工作流一鍵釋出到 Schedulis 進行排程,而 Schedulis 也實現了 Linkis 外掛,用於向 Linkis 提交任務,這樣使得 Schedulis 與 DataSphere Studio 和 Linkis 能夠無縫銜接,從而實現資料應用開發全流程的連貫順滑使用者體驗。
目前的Schedulis1.0版本是基於azkaban二次開發的一款產品,對azkaban 做了增強,增加了很多金融級特性,已經在生產大規模使用,但是也是有著如下缺陷:比如系統採用基於servlet和jdbc前後端耦合的架構,在系統的開發拓展方面有著不少限制,在比如現有高可用方案是基於DB實現的分散式鎖,那麼運算元據庫需要一定的開銷,需要考慮一定的效能瓶頸。
基於以上問題我們正在對Schedulis進行了一次重大變更升級,在新版本中Schedulis將會和azkaban脫離,採用前後端分離的微服務架構,走自己獨立特色路線,在效能,前端UI,DataSphere Studio 和 Linkis整合方面會跟進一步,同時會相容azkaban的存量批次,保證歷史批次無感知遷移。
Schedulis 2.0整體架構互動圖
Schedulis作為一個金融級分散式排程系統,提供了多種靈活的排程、執行 型別和策略來簡化大量任務的複雜依賴和靈活執行。
如您有興趣,歡迎參與社群共建,在這裡可以找到很多您可能感興趣的點,同時也可以和我們交流,期待更多的社群力量,一起推動Schedulis的成長。
開源連結:
gitee地址: https://gitee.com/WeBank/Schedulis ;
[admin
]