DolphinScheduler 调度系统
一 .背景
今天跟客戶聊天的時候,聊到了調度系統,拋出三個顧慮 :
調度系統現在市面上的調度系統那么多,比如老牌的Airflow, Oozie,Kettle,xxl-job ,Spring Batch等等, 為什么要選DolphinScheduler ?
其他的調度產品用的都是主流的語言比如java,調度底層都是用的quartz,穩定性都不錯啊,功能/技術都差不多啊,為啥選他 ?
DolphinScheduler我之前都沒聽過,這么新的東西我為什么要選他,為他承擔風險 ? 別人來質疑我的選型的時候,咋懟回去 ?
仔細一聽都沒毛病.是差不多啊. 那么為啥要選DolphinScheduler ???
在我的觀念里面,沒有最好的, 只有結合自身的業務/技術情況挑選最合適的技術產品.
那么接下來, 我從自身的使用情況來說一下,為什么要選型DolphinScheduler ?
二 .定位
為什么上來就說定位呢, 主要是為了縮小對比的范圍.
DolphinScheduler 的定位是 大數據 工作流 調度 .
我把 大數據 和 工作流 做了重點標注. 從而可以知道 DolphinScheduler的定位是針對于大數據體系.
我這搞的是大數據平臺, 目前主流的大數據調度組件有 : Oozie、Azkaban、Airflow 所以本文只是針對這三個技術做對比.
注 : kettle,xxl-job ,Spring batch 的定位任務調度,非大數據體系,對大數據體系的支持較弱,而且普遍都非HA,存在單點故障. 因為產品定位的不同,所以不做對比.
三 .案例
市場的認可度是檢驗產品價值的唯一真理.
我在調研技術的時候,如果市場認可度不高,那么基本就直接放棄了.
老牌調度Oozie、Azkaban、Airflow 我就不細說了,畢竟是老牌調度.市場的認可度和使用情況大家應該都使用過或者聽說過.
DolphinScheduler從2019年3月正式發布第一個開源1.0.0版本到現在, 貌似到現在才兩年的時間, 所以重點說一下.
?
四 .竟品對比
在大數據領域, DolphinScheduler 對標的開源產品是 oozie、Azkaban、Airflow .
因為公司的主流開發語言是Java , 考慮到成本維護之類的因素,因為Airflow使用的語言是Python , 跟公司的技術棧不匹配. 所以先排除掉 .
對比情況如下 :
DolphinScheduler?? ?Azkaban?? ?Oozie
社區狀況?? ??? ??? ?
所屬社區?? ?apache?? ?Linkedin?? ?apache
社區活躍度?? ?高?? ?中?? ?低
穩定性?? ??? ??? ?
單點故障?? ?去中心化的多Master和多Worker?? ?是
單個Web和調度程序組合節點?? ?是
HA?? ?支持
(HA需要依賴ZK,資源中心?? ?支持?? ?不支持[待確認]
過載處理?? ?任務隊列+多種任務分配策略+自我保護機制?? ?任務過多服務器卡頓?? ?任務過多服務器卡頓
易用性?? ??? ??? ?
DAG監控界面?? ?任務狀態、任務類型、重試次數、任務運行機器、可視化變量等關鍵信息一目了然?? ?部分任務相關信息?? ?部分任務相關信息
可視化流程定義?? ?支持
[所有的流程定義都是可視化的,通過拖拽任務來繪制DAG, 配置數據源以及資源.對于第三方系統,提供api操作]?? ?否[編碼配置]?? ?否[編碼配置]
快速部署?? ?一鍵部署?? ?部署相對復雜?? ?部署相對復雜
容器化部署?? ?支持?? ?否?? ?否
功能?? ??? ??? ?
是否支持暫停和恢復?? ?支持?? ?否?? ?否
是否支持多租戶?? ?支持?? ?否?? ?否
任務類型?? ?傳統的shell 、python任務, 同時支持大數據平臺任務調度: MR、Spark、Flink、SQL、DataX、Sqoop等等?? ?shell、gobblin、hadoopJava、java、hive、pig、spark、hdfsToTeradata、teradataToHdfs等?? ?Pig,Hive,Sqoop和Distcp,Spark
可視化數據源管理?? ?支持?? ?不支持?? ?不支持
可視化文件管理?? ?支持
[需要依賴外部存儲比如HDFS,S3A,minIO]?? ?不支持?? ?不支持
手動/定時觸發任務?? ?支持?? ?支持?? ?支持
告警?? ?支持 [ 郵件/企業微信/釘釘/自擴展 ]?? ?支持?? ?待確認
擴展?? ??? ??? ?
自定義任務類型?? ?支持?? ?支持?? ?不支持
支持集群擴展?? ?是
調度器使用分布式調度,整體的調度能力會隨集群的規模線性增長,Master/Worker支持動態擴容/縮容?? ?是 [相對復雜]?? ?-
表格中的信息如果有不嚴謹的地方,歡迎指正.
我們在看一下DolphinScheduler技術棧 :
后端: SpringBoot (2.x)
前端: VUE
編譯: Maven(3.3+) ,
元數據存儲: Mysql5.5+
分布式無中心化設計: ZooKeeper(3.4.6+)
統一資源管理 : 共享存儲[HDFS、S3A、MinIO]
主流技術棧,二次開發基本零門檻 .
五 .DolphinScheduler簡介
Apache DolphinScheduler 于 17 年在易觀數科立項, 19 年 3 月開源,8 月進入 Apache 孵化器, 已累計有 400+ 公司在生產上使用.
一個分布式易擴展的可視化DAG工作流任務調度系統。致力于解決數據處理流程中錯綜復雜的依賴關系,使調度系統在數據處理流程中開箱即用。
其主要目標如下:
? ? ? ? * 以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在線查看
?? ??? ?* 支持工作流運行歷史樹形/甘特圖展示、支持任務狀態統計、流程狀態統計
?? ??? ?* 支持補數
?? ??? ?* 支持多租戶
?? ??? ?* 其他....
系統優勢
主要能力
可視化流程
K8s 支持
六 .社區發展
DolphinScheduler為國內開源項目,相對其他國外項目,有天然的本土優勢.
截止目前 DolphinScheduler 共建立了8個用戶群,1個開發種子群,1個開發者群. 總人數4000+, 截止目前對DolphinScheduler做過貢獻的開發者有220+ . 社區活躍度很高.
目前開源對比情況如下(數據統計時間截止月2021年2月底):
項目名稱?? ?Start數量?? ?Fork數量?? ?Issue數量?? ?Contributors 數量
DolphinScheduler?? ?5.1k?? ?1.8k?? ?4862?? ?180 人
Azkaban?? ?3.6k?? ?1.4k?? ?2769?? ?104人
Oozie?? ?0.59k?? ?0.43k?? ?–?? ?16人
Airflow?? ?20.5k?? ?8k?? ?2837?? ?2836人
七.性能數據參考
生產環境
易觀千帆是每天需要處理數百億條數據,月活 6.2億,6.8 PB 的大數據集群經過每天上萬個任務 ETL 處理加工而產生的 SaaS 服務應用。
壓測
因為執行任務的類型不同,所消耗的cpu/內存/網絡/磁盤的資源也不同,因為執行大數據體系任務都是將任務統一提交到Yarn集群,僅僅是提交一個shell指令. 為了模擬, 所以該測試數據僅為執行shell腳本, 數據僅為參考,請以實際環境為準.
機配置為 :?
?? ?5臺物理 ?16核 32g內存 千兆網卡.
?? ?
?? ?線程總數: 16 * 5 = 80?
?? ?內存總數: 32 * 5 = 160G?
壓測結果:
?? ?并行任務數量在 8000+
?? ?數據庫連接數據: 1100+
?? ?
?? ?cpu占用 10% +
?? ?內存占用 40%+
調整參數:?
?? ?master.exec.threads=6000
?? ?master.exec.task.num=20?
?? ?
?? ?worker.exec.threads=6000
?? ?
?? ?內存配置:
?? ?Api : 4G
?? ?Master : 4G
?? ?Worker: 4G
?
總結
以上是生活随笔為你收集整理的DolphinScheduler 调度系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP_常用BADI清单
- 下一篇: REXROTH力士乐柱塞泵A10VSO1