強(qiáng)大的Airflow介紹及其手把手安裝操作步驟(強(qiáng)大的airflow介紹及其手把手安裝操作步驟)

一、先介紹一下 Airflow

Airflow是一個(gè)可編程,調(diào)度和監(jiān)控的工作流平臺(tái),基于有向無(wú)環(huán)圖(DAG),airflow可以定義一組有依賴的任務(wù),按照依賴依次執(zhí)行。airflow提供了豐富的命令行工具用于系統(tǒng)管控,而其web管理界面同樣也可以方便的管控調(diào)度任務(wù),并且對(duì)任務(wù)運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,方便了系統(tǒng)的運(yùn)維和管理。

雖然Airflow的主要功能宗旨是數(shù)據(jù)工程和數(shù)據(jù)科學(xué)領(lǐng)域,但也可以根據(jù)需要將其擴(kuò)展到業(yè)務(wù)流程審批等其他應(yīng)用場(chǎng)景中。如:可以創(chuàng)建一個(gè)DAG(有向無(wú)環(huán)圖),并將每個(gè)節(jié)點(diǎn)定義為審批步驟。當(dāng)遞交一個(gè)待審批的請(qǐng)求時(shí),Airflow會(huì)按照您預(yù)先定義的順序、時(shí)間間隔或其他條件來(lái)觸發(fā)每個(gè)節(jié)點(diǎn)。該過程中,可以在Web UI上查看每個(gè)節(jié)點(diǎn)的狀態(tài),并發(fā)送電子郵件或其他通知來(lái)提醒相關(guān)用戶進(jìn)行審批或操作。另外,通過插件或自定義代碼,還可以將Airflow與其他系統(tǒng)集成,從而實(shí)現(xiàn)更復(fù)雜的流程,例如自動(dòng)化生成文件或自動(dòng)化處理其它系統(tǒng)的數(shù)據(jù)。

二、主要功能包括以下方面:

1、DAG:通過python腳本描述任務(wù)依賴關(guān)系,形成有向無(wú)環(huán)圖(DAG),將任務(wù)和依賴關(guān)系組織起來(lái)。您可以使用Airflow內(nèi)置的Python庫(kù)或者自己編寫Python代碼來(lái)創(chuàng)建DAG定義。

2、運(yùn)行器(Executor):根據(jù)任務(wù)的類型和復(fù)雜程度,您可以選擇不同的運(yùn)行器來(lái)執(zhí)行。Airflow提供了四種運(yùn)行器:Sequential(順序)、Local(本地)、Celery和Dask。這些運(yùn)行器可以擴(kuò)展至超過10萬(wàn)個(gè)任務(wù),同時(shí)保持良好的性能表現(xiàn)。

3、任務(wù)調(diào)度:Airflow使用第三方插件-Beat Scheduler來(lái)安排和執(zhí)行任務(wù)。該插件允許預(yù)定、執(zhí)行、監(jiān)控和重新執(zhí)行DAG組成的工作流中的任務(wù)。

4、連接器(Connections):Airflow支持許多第三方連接器,可用于與各種數(shù)據(jù)源進(jìn)行交互,例如AWS S3、Azure Blob Storage、Postgres、MySQLRedis等等。您可以輕松地將連接器配置到Airflow系統(tǒng)中,并通過Python代碼來(lái)操作外部系統(tǒng),以便在Airflow中基于數(shù)據(jù)流建立一個(gè)工作流。

5、觸發(fā)器(Triggers): Airflow包含一組強(qiáng)大的觸發(fā)器機(jī)制,可以允許您設(shè)置依賴放寬的級(jí)別。例如,如果您希望等待另一個(gè)DAG完成或在特定條件下才啟動(dòng)任務(wù),Airflow可以提供靈活的觸發(fā)器工具。

6、任務(wù)狀態(tài)監(jiān)控:Airflow捕獲運(yùn)行時(shí)日志記錄,并將其存儲(chǔ)到關(guān)系數(shù)據(jù)庫(kù)中。您可以使用命令行界面或Web UI來(lái)輕松查看日志和監(jiān)控進(jìn)度,以及重新啟動(dòng)失敗的任務(wù)或重新安排錯(cuò)過的任務(wù)。

7、擴(kuò)展功能:Airflow擁有豐富的API接口,您可以使用REST API進(jìn)行管理、監(jiān)視和調(diào)用任務(wù)。還有許多擴(kuò)展插件可用于實(shí)現(xiàn)更高級(jí)的功能,例如Jupyter Notebooks支持等。

8、Airflow的主要功能是幫助數(shù)據(jù)工程師和數(shù)據(jù)科學(xué)家通過代碼來(lái)組織復(fù)雜的數(shù)據(jù)管道,以及管理和監(jiān)控這些管道中的任務(wù)和依賴項(xiàng)

三、安裝步驟:

1、更新包列表

sudo apt update

2、更新已安裝的包

sudo apt upgrade

3、python設(shè)定

安裝python3.8

sudo apt-get install python3.8

sudo apt-get install python3-pip python3-venv

刪除原來(lái)python依賴

sudo rm /usr/bin/python3

更換默認(rèn)python3 的版本為3.8

sudo ln -s /usr/bin/python3.8 /usr/bin/python3

4、安裝 python 虛擬環(huán)境

mkdir /opt/airflow_venv

sudo chown -R ubuntu.ubuntu /opt/airflow_venv

python3 -m venv airflow_venv

如果一直無(wú)法創(chuàng)建虛擬環(huán)境需要安裝python3.8-venv

sudo apt-get install python3.8-venv

激活虛擬環(huán)境

source /opt/airflow_venv/bin/activate

5、為了確保Airflow能夠找到必要的文件和依賴項(xiàng),請(qǐng)運(yùn)行以下命令以設(shè)置AIRFLOW_HOME環(huán)境變量:

export AIRFLOW_HOME=/opt/airflow

同時(shí)最好能將其添加到 ~/.bashrc 文件中,以便永久保存這些設(shè)置。

sudo pico ~/.bashrc

在空行或者末尾添加

export AIRFLOW_HOME=/opt/airflow

然后保存退出

確認(rèn)環(huán)境變量是否已成功設(shè)置。需要關(guān)閉當(dāng)前窗口再打開運(yùn)行以下命令:

echo $AIRFLOW_HOME

6、安裝airflow

pip3 install apache-airflow -i https://pypi.tuna.tsinghua.edu.cn/simple

通過pip安裝的可以,通過pip show apache-airflow來(lái)查看安裝路徑

7、初始化數(shù)據(jù)庫(kù)【如果不更換數(shù)據(jù)庫(kù),就可以直接初始化】

airflow db init


8、官方建議更換數(shù)據(jù)庫(kù),現(xiàn)改為mysql

8.1、安裝

sudo apt-get update #更新包

sudo apt install mysql-server-5.7

查看mysql的版本:mysql -V

8.2、設(shè)置mysql密碼

mysql -u root -p

剛安裝后是沒有密碼的,可直接回車進(jìn)入

CREATE USER 'airflow'@'%' IDENTIFIED BY 'qw****21';

需要對(duì)用戶進(jìn)行授權(quán)

GRANT all ON *.* TO 'airflow'@'%';

退出sql,使密碼生效

sudo mysql_secure_installation

同時(shí)為了能遠(yuǎn)程訪問,需要修改

打開MySQL配置文件my.cnf,并找到bind-address選項(xiàng)。這通常位于/etc/mysql/mysql.conf.d/mysqld.cnf文件中

#bind-address = 127.0.0.1

bind-address = 0.0.0.0

8.3、重啟mysql

sudo service mysql restart

8.4、安裝mysql驅(qū)動(dòng)

sudo apt install -y mysql-client

sudo apt-get install libmysqlclient-dev

sudo apt install libssl-dev

sudo apt install libcrypto -dev

sudo apt install libmysqlclient-dev

pip install mysqlclient

一直報(bào)#include "Python.h" ^~~~~~~~~~ compilation terminated. error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1,發(fā)現(xiàn)安裝了sudo apt-get install python3-dev,安裝了python3.8-dev才能解決

sudo apt-get install python3.8-dev

pip3 install 'apache-airflow[mysql]'

修改airflow的數(shù)據(jù)連接

pico /opt/airflow/airflow.cfg

找到以下位置,把原來(lái)的sql_alchemy_conn注釋,然后添加新連接

[database]

#sql_alchemy_conn = sqlite:////opt/airflow/airflow.db

sql_alchemy_conn=mysql://username:mypassword@localhost/airflow_db


8.5、初始化數(shù)據(jù)庫(kù)

airflow db init

8.6、創(chuàng)建用戶

airflow users create –username 賬號(hào) –firstname 姓 –lastname 名字 –role Admin –email asd@xxx.com

9、啟動(dòng)airflow

source /opt/airflow_venv/bin/activate

airflow webserver -p 8080 -D

10、啟動(dòng)調(diào)度程序

airflow scheduler -D

加參數(shù)D,是守護(hù)進(jìn)程運(yùn)行,不占用窗體

強(qiáng)大的Airflow介紹及其手把手安裝操作步驟(強(qiáng)大的airflow介紹及其手把手安裝操作步驟)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2024年5月16日 下午2:16
下一篇 2024年5月16日 下午2:28

相關(guān)推薦

1024你懂的国产精品| 四虎国产永久免费久久| 亚洲另类自拍丝袜第五页| 91香蕉视频下载导航| 欧美日韩中文在线视频| 日韩精品一区二区亚洲av观看 | 国色天香精品一卡2卡3卡| 又爽又黄又无遮挡的视频| 久久久久国产精品| 羞羞漫画在线成人漫画阅读免费| 欧美亚洲视频在线观看| 国内自拍青青草| 免费看电视电影| jizz国产在线播放| 国产肥老上视频| 人人妻人人做人人爽| 一区二区高清在线| 琪琪色原网站在线观看| 好大好硬别停老师办公室视频 | 国产人妖ts在线视频观看| 亚洲同性男gay网站在线观看| 8x8x华人永久免费视频| 最近在线2018视频免费观看| 国产午夜精品一区二区三区| 久久精品国产亚洲7777| 黑巨人与欧美精品一区| 欧妇女乱妇女乱视频| 99re5在线精品视频热线| 欧美日韩国产另类在线观看| 国产超爽人人爽人人做| 亚洲剧场午夜在线观看| 2021av在线视频| 日本欧美一区二区三区在线播放 | 99精品视频在线| 亚洲卡一卡2卡三卡4麻豆| 药店打针1_标清| 情侣视频精品免费的国产| 免费国产成人午夜在线观看| 99久久久国产精品免费牛牛| 欧美免赞性视频| 国产一区二区女内射|