本篇文章給大家分享的是有關(guān)任務(wù)調(diào)度神器airflow怎么用呢,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)是專業(yè)的高青網(wǎng)站建設(shè)公司,高青接單;提供成都做網(wǎng)站、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行高青網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
airflow 是 apache下孵化項目,是純 Python 編寫的一款非常優(yōu)雅的開源調(diào)度平臺。github 上有 8971 個星(貓注:現(xiàn)在是 15.4K),是非常受歡迎的調(diào)度工具。airflow 使用 DAG (有向無環(huán)圖) 來定義工作流,配置作業(yè)依賴關(guān)系非常方便,豪不夸張地說:方便程度簡直甩其他任務(wù)調(diào)度工具一條街。
airflow 有著以下天然優(yōu)勢:
5. 豐富的命令工具,你甚至都不用打開瀏覽器,直接在終端敲命令就能完成測試,部署,運行,清理,重跑,追數(shù)等任務(wù),想想那些靠著在界面上不知道點擊多少次才能部署一個小小的作業(yè)時,真覺得 airflow 真的太友好了。
airflow 是免費的,我們可以將一些常做的巡檢任務(wù),定時腳本(如 crontab ),ETL處理,監(jiān)控等任務(wù)放在 airflow 上集中管理,甚至都不用再寫監(jiān)控腳本,作業(yè)出錯會自動發(fā)送日志到指定人員郵箱,低成本高效率地解決生產(chǎn)問題。但是由于中文文檔太少,大多不夠全全,因此想快速上手并不十分容易。首先要具備一定的 Python 知識,反復(fù)閱讀官方文檔,理解調(diào)度原理。本系列分享由淺入深,逐步細(xì)化,嘗試為你揭開 airflow 的面紗。
從一個使用者的角度來看,調(diào)度工作都有以下功能:
7. 后臺調(diào)度服務(wù)(scheduler)
除了短信需要自己實現(xiàn),其他功能 airflow 都有,而且在 airflow 的 webserver 上我們可以直接配置數(shù)據(jù)庫連接來寫 sql 查詢,做更加靈活的統(tǒng)計分析。
除了以上的組成部分,我們還需要知道一些概念
Linux 的 crontab 和 windows 的任務(wù)計劃,他們可以配置定時任務(wù)或間隔任務(wù),但不能配置作業(yè)之前的依賴關(guān)系。airflow 中 DAG 就是管理作業(yè)依賴關(guān)系的。DAG 的英文 directed acyclic graphs 即有向無環(huán)圖,下圖 1 便是一個簡單的 DAG
圖 1:DAG 示例
在 airflow 中這種 DAG 是通過編寫 Python 代碼來實現(xiàn)的,DAG 的編寫非常簡單,官方提供了很多的例子,在安裝完成后,啟動 webserver 即可看到 DAG 樣例的源碼(其實定義了 DAG 對象的 python 程序),稍做修改即可成為自己的 DAG 。上圖 1 中 DAG 中的依賴關(guān)系通過下述三行代碼即可完成:
是不是非常簡潔,并且是 —human-readable。
DAG 定義一個作業(yè)流,Operators 則定義了實際需要執(zhí)行的作業(yè)。airflow 提供了許多 Operators 來指定我們需要執(zhí)行的作業(yè):
后續(xù)會介紹如何使用這些 Operators 敬請關(guān)注。
airflow 1.9 之前的版本使用本地時區(qū)來定義任務(wù)開始日期,scheduler_interval 中 crontab 表達式中的定時也是依據(jù)本地時區(qū)為準(zhǔn),但 airflow 1.9 及后續(xù)新版本將默認(rèn)使用 UTC 時區(qū)來確保 airflow 調(diào)度的獨立性,以避免不同機器使用不同時區(qū)導(dǎo)致運行錯亂。如果調(diào)度的任務(wù)集中在一個時區(qū)上,或不同機器,但使用同一時區(qū)時,需要對任務(wù)的開始時間及 cron 表達式進行時區(qū)轉(zhuǎn)換,或直接使用本地時區(qū)。目前 1.9 的穩(wěn)定版本還不支持時區(qū)配置,后續(xù)版本會加入時區(qū)配置,以滿足使用本地時區(qū)的需求。
webserver 是 airflow 的界面展示,可顯示 DAG 視圖,控制作業(yè)的啟停,清除作業(yè)狀態(tài)重跑,數(shù)據(jù)統(tǒng)計,查看日志,管理用戶及數(shù)據(jù)連接等。不運行 webserver 并不影響 airflow 作業(yè)的調(diào)度。
調(diào)度器 schduler 負(fù)責(zé)讀取 DAG 文件,計算其調(diào)度時間,當(dāng)滿足觸發(fā)條件時則開啟一個執(zhí)行器的實例來運行相應(yīng)的作業(yè),必須持續(xù)運行,不運行則作業(yè)不會跑批。
當(dāng)執(zhí)行器為 CeleryExecutor 時,需要開啟一個 worker。
執(zhí)行器有 SequentialExecutor, LocalExecutor, CeleryExecutor
CeleryExecutor 為 Celery 執(zhí)行器,需要安裝 Celery ,Celery 是基于消息隊列的分布式異步任務(wù)調(diào)度工具。需要額外啟動工作節(jié)點-worker。使用 CeleryExecutor 可將作業(yè)運行在遠程節(jié)點上。
以一張思維導(dǎo)圖總結(jié)今天的內(nèi)容:
以上就是任務(wù)調(diào)度神器airflow怎么用呢,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞名稱:任務(wù)調(diào)度神器airflow怎么用呢
路徑分享:http://www.muchs.cn/article0/jsocoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、建站公司、網(wǎng)站排名、云服務(wù)器、定制開發(fā)、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)