【Airflow】工作流自動化和調度系統

      網友投稿 1289 2025-04-02

      文章目錄

      一、Airflow的誕生

      二、基于CeleryExecutor方式的系統架構

      三、Airflow的組成成分

      四、安裝

      五、基本命令

      Reference

      一、Airflow的誕生

      【Airflow】工作流自動化和調度系統

      2014年,Airbnb創造了一套工作流調度系統:Airflow。Airflow是靈活可擴展的工作流自動化和調度系統 。2019年成為Apache的頂級項目。它可以讓程序員通過編程實現:編寫、調度、監控工作流,主要針對有大量數據進行傳遞的場景,不適合解決流式任務(如spark streaming和Flink)。

      通過python代碼,把任務組織成有向無環圖DAG,

      通過【依賴關系】在一組服務器上調度任務。

      Airflow有啥用:

      監控自動化工作的情況(通過web UI和各個worker上記錄的執行歷史)

      自動處理并傳輸數據

      機器學習或推薦系統提供一個數據管道和使用框架

      二、基于CeleryExecutor方式的系統架構

      使用celery方式的系統架構圖(官方推薦使用這種方式,同時支持mesos方式部署)。turing為外部系統,GDags服務幫助拼接成dag,可以忽略。

      master節點webui管理dags、日志等信息。scheduler負責調度,只支持單節點,多節點啟動scheduler可能會掛掉

      worker負責執行具體dag中的task。這樣不同的task可以在不同的環境中執行。

      turing為外部系統

      GDags服務幫助拼接成dag

      master節點webui管理dags、日志等信息

      scheduler負責調度,只支持單節點

      worker負責執行具體dag中的task, worker支持多節點

      三、Airflow的組成成分

      Worker:用來處理和執行整個工作流的各個節點的工作任務的東西。

      Scheduler:只有干活的worker是不夠的,Airflow需要有一個大腦,去檢查哪些任務執行了,哪些任務沒有執行,以及應該在什么時間執行任務。

      WebServer:Airflow是可以用視窗工具(UI)來完成工作流修改,參數修改這些任務的。這個視窗工具就是一個web頁面(簡單理解就是在瀏覽器里面打開的網頁)。這個WebServer啟動之后,我們就可以更方便的去修改和檢測我們的工作流了。

      中止、恢復、觸發任務。

      監控正在運行的任務,斷點續跑任務。

      執行 ad-hoc 命令或 SQL 語句來查詢任務的狀態,日志等詳細信息。

      配置連接,包括不限于數據庫、ssh 的連接等。

      四、安裝

      (1)安裝包

      yum install python-devel mysql-devel -y yum install python-devel yum install python3-devel yum install mysql-devel pip3 install mysqlclient pip3 install apache-airflow pip3 install apache-airflow[mysql]

      1

      2

      3

      4

      5

      6

      7

      (2)修改配置文件

      # 初始化原始庫 執行完以下命令后會在當前家用戶目錄下生成airflow目錄 airflow db init # vim airflow.cfg 具體要修改的內容如下 [core] executor=LocalExecutor sql_alchemy_conn = mysql://user:password@IP:3306/airflow [smtp] smtp_host = mail.ndpmedia.com smtp_starttls = True smtp_ssl = False smtp_user = user smtp_password = pass smtp_port = 25 smtp_timeout = 30 smtp_mail_from =與user相同 smtp_retry_limit = 5 [webserver] security = Flask AppBuilder secure_mode = True rbac=True

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      (3)創建用戶

      airflow users create --username admin --firstname admin --lastname admin --role Admin --email example@XX.com airflow webserver 啟動web服務 airflow scheduler 啟動調度程序

      1

      2

      3

      五、基本命令

      $ airflow webserver -D 守護進程運行webserver $ airflow scheduler -D 守護進程運行調度器 $ airflow worker -D 守護進程運行調度器 $ airflow worker -c 1 -D 守護進程運行celery worker并指定任務并發數為1 $ airflow pause dag_id  暫停任務 $ airflow unpause dag_id 取消暫停,等同于在管理界面打開off按鈕 $ airflow list_tasks dag_id 查看task列表 $ airflow clear dag_id 清空任務實例 $ airflow trigger_dag dag_id -r RUN_ID -e EXEC_DATE 運行整個dag文件 $ airflow run dag_id task_id execution_date 運行task

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      Reference

      [1] airflow官方文檔:https://github.com/apache/airflow

      [2] 大數據基礎airflow:https://www.cnblogs.com/barneywill/p/10268501.html

      [3] airflow安裝:https://blog.csdn.net/u011192458/article/details/106321676

      [4] https://blog.51cto.com/xiaoqiangjs/2462914

      MySQL

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel中如何處理一對多的數據(excel查找一對多的數據)
      下一篇:進銷存管理庫存
      相關文章
      亚洲欧洲日产韩国在线| 亚洲丁香色婷婷综合欲色啪| 亚洲色偷偷偷网站色偷一区| 亚洲AV无码久久精品色欲| 国产精品亚洲玖玖玖在线观看| 亚洲人成国产精品无码| 国产av无码专区亚洲av毛片搜| 妇女自拍偷自拍亚洲精品| 精品韩国亚洲av无码不卡区| 国产成人综合亚洲绿色| 亚洲A∨精品一区二区三区| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲自偷精品视频自拍| 久久久久亚洲AV无码专区首JN| 亚洲综合一区二区国产精品| 日韩亚洲AV无码一区二区不卡| 亚洲综合国产精品| 亚洲理论片在线中文字幕| 亚洲春黄在线观看| 亚洲自国产拍揄拍| 亚洲欧美国产欧美色欲| 精品无码专区亚洲| 亚洲精品无码专区久久同性男| 国产成人高清亚洲| 国产日韩亚洲大尺度高清| 久久亚洲国产精品五月天| 久久久久亚洲av无码专区喷水| 亚洲精品在线电影| 亚洲看片无码在线视频| 亚洲精品无码久久久久YW| 婷婷国产偷v国产偷v亚洲| 怡红院亚洲怡红院首页| 国产亚洲A∨片在线观看 | 亚洲成人午夜在线| 亚洲第一永久在线观看| 亚洲国产成a人v在线观看| 色欲aⅴ亚洲情无码AV蜜桃| 国产成人99久久亚洲综合精品| 久久久久亚洲av无码专区蜜芽| 亚洲午夜未满十八勿入| 国产精品久久亚洲不卡动漫|