三、Airflow 快樂安裝指北(Mac 和 Windows)
Mac 安裝 Airflow 環境、Windows 安裝 Airflow 環境、step by step 安裝、創建虛擬環境、初始化 airflow db、設定使用者
這系列的文章源自我 2023/9/16-2023/10/15 參加的 iT 鐵人賽:
2023 鐵人賽系列文章:Airflow 是什麼? 能吃嗎 ? 數據水管工的超級蘑菇
Mac 安裝 step by step
Before 安裝
! 記得要先有 Python
- 確認一下 python
python3 --version
1.安裝虛擬環境
pip3 install virtualenv
2.專案資料夾
- ~/airflow 是預設專案資料夾
盡量不要修改路徑,可能會裝失敗
- 創建專案資料夾
mkdir ~/airflow
- 進入專案資料夾
cd ~/airflow
3.創建虛擬環境
- airflow-env 是虛擬環境名稱,可以自己設定
python3 -m venv airflow-env
4.進入虛擬環境
source airflow-env/bin/activate
5.安裝 Apache Airflow
pip3 install apache-airflow
- 如果安裝遇到問題,可以更新 pip
6.設定 Airflow 的訪問目錄
export AIRFLOW_HOME=~/airflow
7.初始化 airflow db
airflow db init
- 執行完打
ls
會出現airflow-env
(我們剛剛裝的虛擬環境)、logs/
資料夾、設定檔airflow.cfg
以及 SQLite 的資料庫airflow.db
- 目前資料夾結構如下:
~/airflow
--airflow-env/
--logs/
--airflow.cfg
--airflow.db
8.設定使用者
airflow users create --username admin --firstname FIRST_NAME --lastname LAST_NAME --role Admin --email admin@example.org
- 密碼設定 0000,記得要打兩次
- 上面的 admin、FIRST_NAME、LAST_NAME、admin@example.org 都可以自己修改
- 建議不修改,不然等等忘記帳密
9.將 webserver 開起來
airflow webserver -p 8080
- webserver 執行過第一遍之後,專案裡面會默默新增兩個檔案,
airflow-webserver.pid
和webserver_config.py
,用於記錄連線的基本訊息。
10.開啟 Localhost
登入畫面(帳號:admin 密碼:0000)
Airflow Web UI畫面
成功開啟這個頁面,代表安裝成功了。
如果安裝遇到問題,在指令前面加上sudo
,有機會就解決了喔~
Windows 安裝 step by step
Step1: 安裝Ubuntu環境
- 如果透過 VirtualBox VM 就會一點都不快樂了
,所以只要安裝 Ubuntu 的終端機(terminal)
1. 打開設定 > 應用程式與功能
- 點開右上角的程式和功能
2. 程式和功能 > 開啟或關閉 Windows 功能
- 開啟 windows 子系統 linux 版
3. 開啟命令提示字元(cmd)
- 記得要用系統管理員開啟
- 輸入
wsl --install
4. 搜尋並開啟 Ubuntu
- 設定帳號和密碼
Step2: 在 Ubuntu Terminal 執行和 Mac 相同的安裝
- 安裝虛擬環境:
pip3 install virtualenv
- 創建專案資料夾:
mkdir /c/Users/{YourUsername}/airflow
- 進入專案資料夾:
cd /c/Users/{YourUsername}/airflow
- 設定虛擬環境名稱:
python3 -m venv airflow-env
- 進入虛擬環境:
source airflow-env/bin/activate
- 修改設定:開啟
vim ~/.bashrc
,加入這行AIRFLOW_HOME=/c/Users/{YourUsername}/airflow
,貼上之後,按esc
,打:wq
離開 vim。 - 回到資料夾:
cd /c/Users/{YourUsername}/airflow
- 安裝 Airflow:
pip3 install apache-airflow
- 安裝 Airflow 的 DB:
airflow db init
- 設定 Airflow 使用者:
airflow users create --username admin –password admin –firstname admin –lastname admin –role Admin –email youremail@email.com
一樣密碼打 0000,才不會忘記
- 開啟 server:
airflow webserver –port 8080
- 開啟 Web UI: http://localhost:8080
Debug FAQ
8080 不能連線
- 如果你發現 8080 port 一直開不起來,有可能是正在跑其他服務,該怎麼辦?
1. 查看目前正在執行什麼服務
lsof -n -i4TCP:8080
ouput 可能會像這樣:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Python 11218 xxx xx xx xx xxx xxxxxxx xxxx xxxx
- 這時候就知道在跑 python 的其他服務,PID 是 11218
2. 殺掉 PID 吧~
kill 11218
- 如果還殺不掉就加上
-9
魔法就行了kill -9 11218
3. 還是不行怎麼辦,打不過就加入8081
- 把
airflow.cfg
打開,把 8080 改成 8081,執行airflow webserver -p 8081
,workaround 最讚了~
結語
之後會介紹 Docker 和如何用 Docker-Compose 安裝環境,還是逃不掉完整的環境安裝的,畢竟之後 deploy 在雲上還是用 docker 會比較好。