快速入門¶
本快速入門指南將協助您在本機上啟動 Airflow 單機執行個體。
注意
成功安裝需要 Python 3 環境。從 Airflow 2.7.0 開始,Airflow 支援 Python 3.8、3.9、3.10、3.11 和 3.12。
目前僅正式支援 pip
安裝。
雖然使用其他工具(如 poetry 或 pip-tools)也取得了一些成功,但它們與 pip
的工作流程不同,尤其是在約束與需求管理方面。目前不支援透過 Poetry
或 pip-tools
安裝。
已知 bazel
存在一些問題,可能導致在使用它安裝 Airflow 時出現循環依賴。如果遇到此類問題,請切換到 pip
。Bazel
社群正在 此 PR 中努力解決此問題,因此較新版本的 bazel
可能會處理此問題。
如果您希望使用這些工具安裝 Airflow,則應使用約束檔案,並將其轉換為您的工具所需的適當格式和工作流程。
如果您按照以下說明操作,Airflow 的安裝非常簡單。Airflow 使用約束檔案來實現可重現的安裝,因此建議使用 pip
和約束檔案。
設定 Airflow Home(選用)
Airflow 需要一個 Home 目錄,預設使用
~/airflow
,但如果您願意,可以設定不同的位置。AIRFLOW_HOME
環境變數用於告知 Airflow 所需的位置。設定環境變數的此步驟應在安裝 Airflow 之前完成,以便安裝程序知道將必要檔案儲存在哪裡。export AIRFLOW_HOME=~/airflow
使用約束檔案安裝 Airflow,該檔案根據我們傳遞的 URL 確定
AIRFLOW_VERSION=2.10.4 # Extract the version of Python you have installed. If you're currently using a Python version that is not supported by Airflow, you may want to set this manually. # See above for supported versions. PYTHON_VERSION="$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')" CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt" # For example this would install 2.10.4 with python 3.8: https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.8.txt pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
執行 Airflow Standalone
airflow standalone
命令會初始化資料庫、建立使用者,並啟動所有元件。airflow standalone
存取 Airflow UI
在瀏覽器中瀏覽
localhost:8080
,並使用終端機中顯示的管理員帳戶詳細資訊登入。在首頁啟用example_bash_operator
DAG。
執行這些命令後,Airflow 將建立 $AIRFLOW_HOME
資料夾,並建立包含預設值的 “airflow.cfg” 檔案,讓您可以快速上手。您可以使用環境變數覆寫預設值,請參閱 組態參考。您可以檢查 $AIRFLOW_HOME/airflow.cfg
中的檔案,或透過 UI 在 Admin->Configuration
選單中檢查。webserver 的 PID 檔案將儲存在 $AIRFLOW_HOME/airflow-webserver.pid
或 /run/airflow/webserver.pid
(如果由 systemd 啟動)。
Airflow 開箱即用,使用 SQLite 資料庫,您應該很快就會發現它已不敷使用,因為使用此資料庫後端無法進行平行化。它與 SequentialExecutor
結合使用,後者僅會依序執行任務執行個體。雖然這非常有限制,但它可讓您快速啟動並執行,並瀏覽 UI 和命令列公用程式。
隨著您的成長並將 Airflow 部署到生產環境,您也會希望從我們在此處使用的 standalone
命令轉移到分別執行元件。您可以在 生產環境部署 中閱讀更多資訊。
以下是一些將觸發幾個任務執行個體的命令。當您執行以下命令時,您應該能夠在 example_bash_operator
DAG 中看到工作的狀態變更。
# run your first task instance
airflow tasks test example_bash_operator runme_0 2015-01-01
# run a backfill over 2 days
airflow dags backfill example_bash_operator \
--start-date 2015-01-01 \
--end-date 2015-01-02
如果您想手動執行 Airflow 的個別部分,而不是使用 all-in-one standalone
命令,您可以改為執行
airflow db migrate
airflow users create \
--username admin \
--firstname Peter \
--lastname Parker \
--role Admin \
--email spiderman@superhero.org
airflow webserver --port 8080
airflow scheduler