iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

前言

本來想說今天再講一下 Airflow 的運作邏輯和概念,突然想起以前我最討厭的老師類型就是整學期都在講概念,最後兩堂隨便實作就結束,然後浪費我一學期,很多概念還都是 wiki 複製的,然後實做的部分也是很水,唉~ 趕緊來安裝吧~ 之後實作過程再講講 Airflow 運作邏輯,這樣應該會比較好吸收。
/images/emoticon/emoticon37.gif

快樂安裝的要素

  • 安裝時間三分鐘
  • 安裝在 Local 端
  • 不用 Docker 安裝
  • 不用 Windows(誤 /images/emoticon/emoticon34.gif

明天應該會是 windows 篇的安裝,希望我那台舊 windows 還能跑得動/images/emoticon/emoticon13.gif

開始安裝

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

小結

成功開啟這個頁面,代表安裝成功了,那網頁上方的 DAGs、Task、Schedule等等,就留到後天再說,今天就先到這邊,有安裝問題都歡迎留言。

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

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 最讚了~

上一篇
[Day2] Apache Airflow 的前世今生
下一篇
[Day4] Airflow 快樂安裝指北(Windows篇)
系列文
Airflow 是什麼? 能吃嗎 ? 數據水管工的超級蘑菇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言