天天看點

爆火的分布式開源排程系統 Apache DolphinScheduler

作者:阿嗚的邊城
爆火的分布式開源排程系統 Apache DolphinScheduler

Apache DolphinScheduler 是一個分布式的開源排程系統,它提供了一種可視化、可擴充、高可用的任務排程和資料處理方案。它支援多種任務類型,包括 Hadoop MapReduce、Spark、Hive、Flink、Python 等,可以在叢集上進行任務排程和管理。

DolphinScheduler 還提供了豐富的監控和告警功能,可以幫助使用者快速發現和解決問題,提高任務的穩定性和可靠性。它是由中國開發者社群共同開發的,目前已成為 Apache 軟體基金會的頂級項目之一。

特性

DolphinScheduler 可以幫助我們達成以下目标:

  • 輕松管理複雜的任務工程
  • 支援跨項目和跨工作流程的任務依賴
  • 支援Kill、暫停和恢複操作
  • 任務支援以租戶、Worker分組組和環境中隔離運作
  • 每個任務都可以修改輸出參數,并将其傳遞給後續任務

DolphinScheduler 有幾個特性:

  • 可靠性高:去中心化的多 Master 和多 Worker 服務對等架構, 避免單 Master壓力過大,另外采用任務緩沖隊列來避免過載
  • 簡單易用:DAG 監控界面,所有流程定義都是可視化,通過拖拽任務完成定制 DAG,通過 API 方式與第三方系統內建, 一鍵部署
  • 豐富的使用場景:支援多租戶,支援暫停恢複操作. 緊密貼合大資料生态,提供 Spark, Hive, M/R, Python, Sub_process, Shell 等近 20 種任務類型
  • 高擴充性:支援自定義任務類型,排程器使用分布式排程,排程能力随叢集線性增長,Master 和 Worker 支援動态上下線

界面

我們可以看下 DAG 的界面截圖,界面功能很豐富。

爆火的分布式開源排程系統 Apache DolphinScheduler
爆火的分布式開源排程系統 Apache DolphinScheduler
爆火的分布式開源排程系統 Apache DolphinScheduler

其他架構

類似于 DolphinScheduler 的架構有不少,我們列出幾個:

  • Apache Airflow:一個用于建立、排程和監控工作流的開源平台,支援 Python 編寫任務,具有可視化的任務排程界面和強大的擴充性。
  • Apache Oozie:一個基于Hadoop的分布式工作流引擎,可以用于排程 Hadoop 作業、Pig 作業、Hive 作業等,支援多種任務類型。
  • Apache NiFi:一個基于資料流程式設計概念的資料內建工具,可以用于資料采集、處理、轉換和傳輸,具有可視化的界面和強大的擴充性。
  • Azkaban:一個開源的批量工作流任務排程器,可以用于排程 Hadoop 作業、Java 作業、Shell 腳本等,支援可視化的任務排程界面和告警功能。

如果僅就排程器而言,國内的 xxl-job 也是功能做得很豐富的架構了。

小結

DolphinScheduler 本身生态發展很好,官方都支援了 Docker。而它本身已經成為 CNCF 的雲原生元件了。

而截止目前,DolphinScheduler 在 GitHub 上已獲得超過 10000 的 star 了,而Apache 甚至在 2022 年做了第一場 Apache DolphinScheduler Meetup,屬實很優秀了。

在國内或國際上,有很多企業選擇使用了 DolphinScheduler,比較知名的有:IBM、NOKIA、DELL、亞信、長安汽車、中國電信、華為等。

如果你有排程的需求,可以試試 DolphinScheduler,也許你會發現它真的很好用。