三、Airflow 快樂安裝指北(Mac 和 Windows)

Mac 安裝 Airflow 環境、Windows 安裝 Airflow 環境、step by step 安裝、創建虛擬環境、初始化 airflow db、設定使用者

三、Airflow 快樂安裝指北(Mac 和 Windows)
Photo by Lewis Kang'ethe Ngugi / Unsplash
這系列的文章源自我 2023/9/16-2023/10/15  參加的 iT 鐵人賽:
2023 鐵人賽系列文章:Airflow 是什麼? 能吃嗎 ? 數據水管工的超級蘑菇

Mac 安裝 step by step

Before 安裝

! 記得要先有 Python
  • 確認一下 python
python3 --version

1.安裝虛擬環境

pip3 install virtualenv 

2.專案資料夾

  • ~/airflow 是預設專案資料夾
盡量不要修改路徑,可能會裝失敗
/images/emoticon/emoticon13.gif
  1. 創建專案資料夾
mkdir ~/airflow
  1. 進入專案資料夾
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.pidwebserver_config.py ,用於記錄連線的基本訊息。

10.開啟 Localhost

網址:http://localhost:8080

登入畫面(帳號:admin 密碼:0000)

登入

Airflow Web UI畫面

Web UI

成功開啟這個頁面,代表安裝成功了。

如果安裝遇到問題,在指令前面加上sudo,有機會就解決了喔~

Windows 安裝 step by step

Step1: 安裝Ubuntu環境

  • 如果透過 VirtualBox VM 就會一點都不快樂了
/images/emoticon/emoticon15.gif

,所以只要安裝 Ubuntu 的終端機(terminal)

1. 打開設定 > 應用程式與功能

應用程式與功能
  • 點開右上角的程式和功能

2. 程式和功能 > 開啟或關閉 Windows 功能

程式和功能
  • 開啟 windows 子系統 linux 版
Windows

3. 開啟命令提示字元(cmd)

  • 記得要用系統管理員開啟
命令提示字元
  • 輸入 wsl --install
https://ithelp.ithome.com.tw/upload/images/20230919/20135427oxhE55CTym.jpg

4. 搜尋並開啟 Ubuntu

https://ithelp.ithome.com.tw/upload/images/20230919/20135427ggfSmYlAAg.jpg
  • 設定帳號和密碼

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,才不會忘記

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 會比較好。