黄色网站入口国产美女,精品国产欧美另类一区,国产一区二区美女自慰,日日摸夜夜添无码国产

選擇你喜歡的標(biāo)簽
我們會為你匹配適合你的網(wǎng)址導(dǎo)航

    確認(rèn) 跳過

    跳過將刪除所有初始化信息

    您的位置:0XUCN > 資訊 > 技術(shù)
    新聞分類

    Apache DolphinScheduler和Apache Airflow任務(wù)調(diào)度系統(tǒng)對比

    技術(shù) PRO 稿源:chauncy 2023-06-28 16:06

    目前世界上最流行的兩款任務(wù)調(diào)度系統(tǒng)是 Apache DolphinScheduler 和 Apache Airflow。什么是任務(wù)調(diào)度系統(tǒng)呢?它類似于平時工作與生活中使用的日程表,可以讓某一類型的任務(wù)在某一特定時刻執(zhí)行,并且在這個任務(wù)執(zhí)行完后,執(zhí)行下一個類似的任務(wù)。以大部分人都要經(jīng)歷的上班為例,按照流程執(zhí)行的一系列任務(wù)就是一個簡單的任務(wù)調(diào)度系統(tǒng),只不過這個系統(tǒng)是人本身而已。Apache DolphinScheduler 和 Apache Airflow 只不過是將上班這個流程里的“聽音樂”、“整理著裝”這些任務(wù)變成了數(shù)據(jù)處理領(lǐng)域里面常用的 Sql、Spark、Shell 等任務(wù),這個流程有一個官方名稱叫做:DAG 工作流。

    Apache DolphinScheduler 和 Apache Airflow 都是任務(wù)調(diào)度系統(tǒng),并且都是 Apache 基金會旗下,兩者有什么區(qū)別呢?這篇文章就將從使用者的角度去討論這個話題。

    介紹

    首先看看 Apache DolphinScheduler 和 Apache Airflow 的官方介紹。

    Apache DolphinSchedulerApache Airflow
    一個分布式易擴(kuò)展的可視化DAG工作流任務(wù)調(diào)度系統(tǒng)。致力于解決數(shù)據(jù)處理流程中錯綜復(fù)雜的依賴關(guān)系,使調(diào)度系統(tǒng)在數(shù)據(jù)處理流程中開箱即用。Apache Airflow (or simply Airflow) is a platform to programmatically author, schedule, and monitor workflows.?

    從官方介紹里就可以看出一個很明顯的區(qū)別:DolphinScheduler 致力于用可視化的方式去完成一個 DAG 工作流,而 Airflow 則想的是用類似于編程的方式完成一個 DAG 工作流。兩個任務(wù)調(diào)度系統(tǒng)不同的開發(fā)思路決定了它們的開發(fā)目標(biāo)也發(fā)生了變化。

    Apache DolphinScheduler 的主要目標(biāo)是:

    以DAG圖的方式將Task按照任務(wù)的依賴關(guān)系關(guān)聯(lián)起來,可實(shí)時可視化監(jiān)控任務(wù)的運(yùn)行狀態(tài)支持豐富的任務(wù)類型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql)、Python、Sub_Process、Procedure等支持工作流定時調(diào)度、依賴調(diào)度、手動調(diào)度、手動暫停/停止/恢復(fù),同時支持失敗重試/告警、從指定節(jié)點(diǎn)恢復(fù)失敗、Kill任務(wù)等操作支持工作流優(yōu)先級、任務(wù)優(yōu)先級及任務(wù)的故障轉(zhuǎn)移及任務(wù)超時告警/失敗支持工作流全局參數(shù)及節(jié)點(diǎn)自定義參數(shù)設(shè)置支持對Master/Worker cpu load,memory,cpu在線查看…

    Apache Airflow 的主要目標(biāo)是:

    Dynamic: Airflow pipelines are configuration as code (Python), allowing for dynamic pipeline generation. This allows for writing code that instantiates pipelines dynamically.Extensible: Easily define your own operators, executors and extend the library so that it fits the level of abstraction that suits your environment.Elegant: Airflow pipelines are lean and explicit. Parameterizing your scripts is built into the core of Airflow using the powerful Jinja templating engine.Scalable: Airflow has a modular architecture and uses a message queue to orchestrate an arbitrary number of workers.

    頁面展示

    Apache DolphinScheduler 和 Apache Airflow 的頁面展示都很豐富,如果非要強(qiáng)行比較的話,因?yàn)?Apache DolphinScheduler 追求用可視化去完成 DAG 工作流的設(shè)計(jì),自然比使用編程的方式完成 DAG 工作流的設(shè)計(jì)的頁面豐富度多了不少。作為使用者的角度來說,我們更會關(guān)心頁面上是否可以展示目前已經(jīng)上線的 DAG 工作流和它們的運(yùn)行情況以及在頁面上完成對 DAG 工作流的重試、刪除等操作。

    查看 DAG 工作流運(yùn)行情況

    Apache DolphinScheduler 和 Apache Airflow 都能做到在頁面上查看目前有哪些已經(jīng)上線的 DAG 工作流以及運(yùn)行情況。

    ? Apache DolphinScheduler

    ? Apache Airflow

    對 DAG 工作流的操作

    Apache DolphinScheduler 對 DAG 工作流的操作類型的豐富度是超過 Apache Airflow 的,至少 Apache Airflow 就不能在頁面上對已經(jīng)上線的 DAG 工作流進(jìn)行修改,必須要以某種方式更改存放在后臺服務(wù)器上的 DAG 文件目錄。

    這兩個都支持在頁面上對 DAG 工作流進(jìn)行手動暫停/停止/恢復(fù),同時支持失敗重試/告警、從指定節(jié)點(diǎn)恢復(fù)失敗、Kill任務(wù)等操作。

    開發(fā)流程

    因?yàn)?Apache DolphinScheduler 和 Apache Airflow 有著不同的設(shè)計(jì)理念,所以 Apache DolphinScheduler 可以直接在頁面上完成對 DAG 工作流的開發(fā)。

    而 Apache Airflow 需要提交一個 Python 文件到后臺服務(wù)器上,由 Apache Airflow 去解析這個 Python 文件,進(jìn)而生成一個 DAG 工作流。

    兩者開發(fā)方式各有優(yōu)劣,Apache Airflow 需要開發(fā)者略懂 Python,而 Apache DolphinScheduler 則可以實(shí)現(xiàn)無編程基礎(chǔ)開發(fā);但是 Apache Airflow 使用 Python 文件的形式,使得可以通過 Git 等 DevOps 工具讓 DAG 工作流的變更歷史清清楚楚記錄著和輕易地將某個他人的工作流進(jìn)行復(fù)制或遷移,這一點(diǎn)上 Apache DolphinScheduler 則有點(diǎn)捉襟見肘了,雖然有 PyDolphinScheduler ,依然少了點(diǎn)味。

    我認(rèn)為 Apache DolphinScheduler 如果能引入類似 Yaml 的可配置文件作為調(diào)度任務(wù)的中間層應(yīng)該能避免此類問題。

    任務(wù)監(jiān)控和公共數(shù)據(jù)源

    Apache DolphinScheduler 和 Apache Airflow 都可以實(shí)現(xiàn)對失敗的任務(wù)進(jìn)行重試和監(jiān)控。除此以外都能實(shí)現(xiàn)豐富類型的失敗任務(wù)告警,比如郵件、短信、釘釘、企業(yè)微信等等。

    在使用者開發(fā) DAG 工作流時,經(jīng)常需要引入外部數(shù)據(jù)源,而外部數(shù)據(jù)源又會因?yàn)轭愃茢?shù)據(jù)安全定期修改密碼等原因,導(dǎo)致鏈接方式發(fā)生改變,所以 Apache DolphinScheduler 和 Apache Airflow 都有一個公共數(shù)據(jù)源的概念,可以讓所有的 DAG 工作流直接訪問這個公共數(shù)據(jù)源獲取鏈接方式,而不需要將外部數(shù)據(jù)源的鏈接方式寫死在 DAG 工作流中。如果需要更改外部數(shù)據(jù)源的鏈接方式,只需要更改 Apache DolphinScheduler 和 Apache Airflow 的公共數(shù)據(jù)源,即可在所有的 DAG 工作流中生效。

    定制化開發(fā)

    作為一個開源的任務(wù)調(diào)度系統(tǒng),Apache DolphinScheduler 和 Apache Airflow 自身所提供的 Task 類型只能滿足社區(qū) 90% 以上的需要,剩下的 10% 會因?yàn)殚_發(fā)團(tuán)隊(duì)的內(nèi)部遺產(chǎn)等原因需要使用任務(wù)調(diào)度系統(tǒng)的人去定制化開發(fā)。在這一點(diǎn)上, Apache DolphinScheduler 和 Apache Airflow 都提供了接口完成這個任務(wù)。

    Apache DolphinSchedulerApache Airflow插件實(shí)現(xiàn)org.apache.dolphinscheduler.spi.task.TaskChannel即可。主要包含創(chuàng)建任務(wù)(任務(wù)初始化,任務(wù)運(yùn)行等方法)、任務(wù)取消,如果是 yarn 任務(wù),則需要實(shí)現(xiàn) org.apache.dolphinscheduler.plugin.task.api.AbstractYarnTask。由于任務(wù)插件涉及到前端頁面,目前前端的SPI還沒有實(shí)現(xiàn),因此你需要單獨(dú)實(shí)現(xiàn)插件對應(yīng)的前端頁面。新開發(fā)的Operator 繼承BaseOperator ,開發(fā)完后放入指定的目錄即完成了。

    通過對比,我們可以發(fā)現(xiàn) Apache Airflow 開發(fā)一個新的 Task 類型要比 Apache DolphinScheduler 方便多了。

    穩(wěn)定性

    因?yàn)槲覀儓F(tuán)隊(duì)使用 Apache Airflow 快四年了,至今沒有發(fā)生問題,因此對于 Apache Airflow 的穩(wěn)定性是沒有什么疑問的。參考 Apache DolphinScheduler 的網(wǎng)上使用體驗(yàn)文章,Apache DolphinScheduler 的穩(wěn)定性應(yīng)該也沒有什么問題。

    所以在這一點(diǎn)上,就不多做評價了,各位讀者自行評價。

    社區(qū)

    Apache DolphinScheduler 和 Apache Airflow 的社區(qū)都很繁榮。

    Apache DolphinSchedulerApache Airflowstar數(shù)8.6k27.2kissue數(shù)53036013PR數(shù)630017936

    純粹從 github 上的一些指標(biāo)來看, Apache Airflow 略勝于 Apache DolphinScheduler,但是考慮到 Apache DolphinScheduler 比 Apache Airflow 晚開源這么久,這點(diǎn)差距是能接受的。當(dāng)然,對于中國開發(fā)者而言,Apache DolphinScheduler 社區(qū)天然就要比 Apache Airflow 容易接受一點(diǎn)。

    資源管控

    Apache DolphinScheduler 和 Apache Airflow 都有著類似于 Yarn 的資源池的概念,方便使用者可以分門別類不同的 DAG 工作流和它們使用的資源。

    總結(jié)

    作為使用者而言,對任務(wù)調(diào)度系統(tǒng)的要求是比較簡單的,對于任務(wù)調(diào)度系統(tǒng)里的實(shí)現(xiàn)細(xì)節(jié)是很少去關(guān)心的。比如:

    ? 易用性:容易配置 DAG 工作流,能夠在頁面上可視化和操作 DAG 工作流等。

    ? 穩(wěn)定性:準(zhǔn)時準(zhǔn)點(diǎn)運(yùn)行任務(wù),任務(wù)調(diào)度系統(tǒng)自身不會發(fā)生宕機(jī)等問題等。

    ? 容易運(yùn)維:對 DAG 工作流可以進(jìn)行資源隔離等。

    因此上述的一些對比僅僅是作為一個使用者的角度去看待 Apache DolphinScheduler 和 Apache Airflow 兩個任務(wù)調(diào)度系統(tǒng),作為一個深度使用 Apache Airflow 的開發(fā)者而言,上面提到的一些特性僅僅只是這兩個任務(wù)調(diào)度系統(tǒng)所有特性的很微不足道的一部分。

    Apache DolphinScheduler 和 Apache Airflow 都各有優(yōu)劣,Apache DolphinScheduler 對中國開發(fā)者很友好,也可以可視化配置 DAG 工作流,適合小白團(tuán)隊(duì),如果數(shù)據(jù)團(tuán)隊(duì)懂一點(diǎn) Python 的話,Apache Airflow 也是一個很好的選擇。

    參考鏈接

    https://github.com/apache/dolphinscheduler

    https://github.com/apache/airfl

    0XU.CN

    [超站]友情鏈接:

    四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
    關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級服務(wù)市場:https://www.ijiandao.com/

    圖庫
    公眾號 關(guān)注網(wǎng)絡(luò)尖刀微信公眾號
    隨時掌握互聯(lián)網(wǎng)精彩
    贊助鏈接