歡迎您光臨本站 註冊首頁

Schedulis V1.0.0 釋出--開源的金融級工作流排程方案

←手機掃碼閱讀     admin @ 2020-05-15 , reply:0

Schedulis 是微眾銀行基於 LinkedIn 的開源專案 Azkaban 開發的一款工作流任務排程系統,用於解決金融級場景下,大量批次作業任務的複雜依賴、靈活排程。

開源連結:

gitee地址: https://gitee.com/WeBank/Schedulis

github地址:https://github.com/WeBankFinTech/Schedulis 

01 Schedulis 是什麼?

Schedulis 是一個分散式工作流任務排程系統。其支援常規的 Command Shell 和 Linkis(HadoopMR、 Hive、Spark、Sqoop、 Python)大資料任務;同時還支援特色的資料檢查和工作流之間的依賴任務,支援完善的告警和工作流執行策略;提供多種型別的引數設定,動態全域性變數和簡單易用的 UI;該排程系統還具備高效能,高可用(去中心化多排程中心和多執行器)和多租戶資源隔離等金融級特性;現已被整合到資料應用開發門戶 DataSphere Studio。

 

02 為什麼需要 Schedulis?

  1. 大資料平臺中承載著大量多樣的資料處理任務,如何才能夠充分解放人力,使得這些任務能夠按照業務自定義的執行順序和執行策略,被自動化的排程且具備足夠的容錯能力?這是企業和業務人員的迫切需要。
  2. 業界現有的任務排程系統層出不窮,但也暴露了各色各樣的問題:
  1. 支援的任務型別不夠豐富和任務排程方式單一,不能滿足變化多端的業務需求;
  2. 不支援工作流之間的相互依賴;
  3. 不支援對接DataSphere Studio 和 Linkis;
  4. 失敗和告警策略要麼缺失要麼簡陋,使得業務人員不能及時的發現問題處理問題;
  5. 對於執行的工作流/任務引數的設定不夠靈活;
  6. 單管理節點配備單冷備的單點故障風險,造成一部分工作流狀態的缺失和服務中斷等問題。.

 

03 Schedulis 的設計理念

完善

豐富的任務型別:支援常規的Command Shell和自身特色的資料檢查DataChecker和工作流之間的依賴任務EventChecker,並且支援基於Linkis平臺提供的大資料任務 (HadoopMR, Hive, Spark, Sqoop, Python)。

多樣化的任務排程方式:透過靈活的配置可以自由的組織工作流,支援工作流的臨時執行,定時排程,迴圈執行,條件執行和同一工作流的併發執行。

多級別的變數引數設定:系統預設引數,使用者級別靜態全域性變數,引數配置檔案properties,系統臨時全域性引數,工作流動態全域性變數。

完善的告警策略:工作流和作業粒度的事件告警和超時告警。

充足的容錯能力:支援多種失敗策略,包括完成所有可以執行的任務,完成當前正在執行的任務,結束所有正在執行的任務,暫停執行的工作流;並且可以對子工作流/任務設定失敗自動重跑次數以及失敗跳過策略。

連通

與 DataSphere Studio 和 Linkis 上下連通:DSS將編輯好的工作流一鍵釋出到Schedulis進行排程,而Schedulis將任務向Linkis提交,從而實現資料應用開發全流程的連貫順滑使用者體驗。

管理

•使用者管理:和LDAP系統打通,可LDAP賬號登陸,支援使用者的不同許可權以及對使用者的增刪修改

•部門管理:統一的部門管理介面,支援對部門的增刪修改以及設定和修改部門所在的資源組

•資源管理:對不同的資源組進行物理隔離,實現系統的多租戶管理方案,保證系統的安全和可靠。

金融級

多個去中心化的排程節點和執行節點,以此增強管理節點的穩定性,避免了單點故障風險,減少系統不能提供服務的時間,最佳化使用者使用體驗。

04 Schedulis的技術架構

如上圖所示,在技術架構層面上,Schedulis的三個主要核心數點是: WebServer,ExecServer以及DB。

WebServer

主要負責提交任務到佇列,輪詢佇列中的任務提交到Executor,採集Executor的健康狀態。

ExecutorServer

ExecutorServer主要負責任務的拆分,規劃和執行。

DB

DB 主要負責系統資料的儲存,在HA 模式下同時充當著分散式鎖的職責,對所有併發操作進行執行緒安全管理。

 

05 Schedulis 如何助力 WeDataSphere構建開源生態

WeDataSphere是一套一站式、金融級、開源開放大資料平臺套件,已在國內最大線上銀行WeBank,經過了數年海量嚴苛金融業務場景的打磨和驗證,表現卓越。

更多關於 WeDataSphere 的介紹,

請訪問:https://github.com/WeBankFinTech/WeDataSphere

 

Schedulis ,是WeDataSphere的資料工具組建之一, 已經與 DataSphere Studio 和 Linkis 的對接,DataSphere Studio 可以將編輯好的工作流一鍵釋出到 Schedulis 進行排程,而 Schedulis 也實現了 Linkis 外掛,用於向 Linkis 提交任務,這樣使得 Schedulis 與 DataSphere Studio 和 Linkis 能夠無縫銜接,從而實現資料應用開發全流程的連貫順滑使用者體驗。

 

06 Schedulis2.0版本展望

目前的Schedulis1.0版本是基於azkaban二次開發的一款產品,對azkaban 做了增強,增加了很多金融級特性,已經在生產大規模使用,但是也是有著如下缺陷:比如系統採用基於servlet和jdbc前後端耦合的架構,在系統的開發拓展方面有著不少限制,在比如現有高可用方案是基於DB實現的分散式鎖,那麼運算元據庫需要一定的開銷,需要考慮一定的效能瓶頸。

基於以上問題我們正在對Schedulis進行了一次重大變更升級,在新版本中Schedulis將會和azkaban脫離,採用前後端分離的微服務架構,走自己獨立特色路線,在效能,前端UI,DataSphere Studio 和 Linkis整合方面會跟進一步,同時會相容azkaban的存量批次,保證歷史批次無感知遷移。

 

Schedulis 2.0整體架構互動圖

 

06 總結

Schedulis作為一個金融級分散式排程系統,提供了多種靈活的排程、執行 型別和策略來簡化大量任務的複雜依賴和靈活執行。

如您有興趣,歡迎參與社群共建,在這裡可以找到很多您可能感興趣的點,同時也可以和我們交流,期待更多的社群力量,一起推動Schedulis的成長。

開源連結:

gitee地址: https://gitee.com/WeBank/Schedulis

github地址:https://github.com/WeBankFinTech/Schedulis 


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/115670/schedulis-1-0-0-released
Schedulis V1.0.0 釋出--開源的金融級工作流排程方案已經有174次圍觀

http://coctec.com/news/all/show-post-234605.html