簡體   English   中英

如何在 Windows 上運行 Airflow

[英]How to run Airflow on Windows

運行 Airflow 的通常說明不適用於 Windows 環境:

# airflow needs a home, ~/airflow is the default,
# but you can lay foundation somewhere else if you prefer
# (optional)
export AIRFLOW_HOME=~/airflow

# install from pypi using pip
pip install airflow

# initialize the database
airflow initdb

# start the web server, default port is 8080
airflow webserver -p 8080

Airflow 實用程序在命令行中不可用,我無法在其他地方找到它以手動添加。 Airflow 如何在 Windows 上運行?

三個基本選項

我經歷了這個問題的幾次迭代,並在我進行的過程中記錄了它們。 我嘗試過的三件事是:

  1. 將 Airflow 直接安裝到 Windows 10 - 此嘗試失敗。
  2. 使用 Ubuntu 將 Airflow 安裝到 Windows 10 WSL - 這很好用。 請注意,WSL 是適用於 Linux 的 Windows 子系統,您可以在 Windows 商店中免費獲得。
  3. 通過 Docker + Centos 將 Airflow 安裝到 Windows 10 - 這也很有效。

請注意,如果您想讓它作為 Linux 服務運行,則選項 2 是不可能的。選項 3 是可能的,但我沒有這樣做,因為它需要在 docker 中激活特權容器(我希望不知道我什么時候開始的)。 此外,在 Docker 中運行服務有點違反范式,因為無論如何每個容器都應該是一個單一的進程/責任單位。

#2 - WSL 選項的詳細說明

如果您選擇選項 2,基本步驟是:

  • 安裝並打開 WSL Ubuntu。
  • 驗證它是否帶有 python 3.6.5 左右( python3 -version )。
  • 假設它仍然存在,添加這些包以便安裝 PIP 將起作用。
    • sudo apt-get install software-properties-common
    • sudo apt-add-repository universe
    • sudo apt-get update
  • 使用以下命令安裝 pip:
    • sudo apt-get install python-pip (或python3-pip for Python 3)
  • 運行以下 2 個命令來安裝氣流:
    • export SLUGIFY_USES_TEXT_UNIDECODE=yes
    • pip install apache-airflow pip3 (或pip3 for Python 3)
  • 打開一個新終端(我很驚訝,但這似乎是必需的)。
  • 初始化氣流數據庫:
    • airflow initdb

在此之后,你應該很高興去! 該博客提供了有關其中許多步驟的更多詳細信息,以及設置 WSL 需要多長時間的粗略時間表等 - 因此,如果您在那里遇到困難,請再深入一些。

不是通過 pip 安裝 Airflow,而是在Airflow 項目的 GitHub上下載 zip,解壓縮它並在其文件夾中,在命令行上運行python setup.py install ERROR - 'module' object has no attribute 'SIGALRM'錯誤將會發生,但到目前為止這對 Airflow 的功能沒有影響。

使用此方法,airflow util 將無法作為命令使用。 作為一種解決方法,使用[current folder]\\build\\scripts-2.7\\airflow文件,這是氣流 util 的 python 腳本。

另一種解決方案是將指向運行氣流的批處理文件的鏈接附加到系統路徑變量 (airflow.bat):

python C:\path\to\airflow %*

從這點開始,可以正常遵循教程:

airflow init
airflow webserver -p 8080

我還沒有測試 Airflow 的 DAG 在 Windows 上的運行情況。

我正在使用 docker 在 Windows 10 上運行氣流。

1)首先你需要在你的windows上安裝docker。

2) 從命令提示符運行命令docker version如果你得到輸出意味着 docker 安裝成功

2)然后你需要使用命令docker pull puckel/docker-airflow來拉氣流圖像

3) 下一步是運行鏡像docker run -d -p 8080:8080 puckel/docker-airflow webserver

4) 這將運行氣流,您可以在 localhost:8080 上訪問 webui

5) 復制 dags 使用這個命令docker cp sample_dag.py containerName:/usr/local/airflow/dags

要訪問氣流實用程序,您需要訪問 container 的 bash shell。 您可以使用docker exec -it containerName bash 進入 bash shell 后,您可以運行命令行實用程序,例如**airflow list_dags**

希望能幫助到你

不幸的是,截至 2015 年 12 月,這個問題的答案似乎是“否” - 請參閱https://github.com/airbnb/airflow/issues/709 這是因為轉向gunicorn。 gunicorn 可能會在 R18 中獲得 Windows 支持

您可以在 Windows 中激活bash並按原樣遵循教程。 我能夠在上面成功啟動並運行。

完成安裝后,編輯airflow.cfg將所有配置指向Windows 系統中的某個位置,而不是lxss(ubuntu),因為ubuntu 周圍存在一些錯誤,不顯示由Windows 系統編寫的文件。

您可以使用Cygwin 來完成 Cygwin 是一個在 Windows 上運行並模擬 Linux 的命令行 shell。 所以你將能夠運行命令,

# airflow needs a home, ~/airflow is the default,
# but you can lay foundation somewhere else if you prefer
# (optional)
export AIRFLOW_HOME=~/airflow

# install from pypi using pip
pip install apache-airflow

# initialize the database
airflow initdb

# start the web server, default port is 8080
airflow webserver -p 8080

注意 1:如果您在公司提供的計算機上運行 Cygwin,您可能需要以管理員身份運行 Cygwin 應用程序。 您可以使用Microsoft 的以下教程來完成此操作

注意 2:如果像我一樣你在代理后面(在你的工作或你后面的任何代理),你需要設置兩個環境變量讓 pip 在命令行上工作; 在這種情況下,Cygwin。 您可以按照此 StackOverflow 答案了解更多詳細信息。 所以我在我的 Windows 機器上設置了以下兩個環境變量,

// Note this first entry has an S in HTTPS and the other entry is just regular HTTP. Don't forget that distinction in the key name and in the url of the value.
HTTPS_PROXY=https://myUsernameGoesHere:myPasswordGoesHere@yourProxyHostNameGoesHere:yourProxyPortNumberGoesHere

HTTP_PROXY=http://myUsernameGoesHere:myPasswordGoesHere@yourProxyHostNameGoesHere:yourProxyPortNumberGoesHere

不再有效:顯然上述所有工作都是徒勞的,因為 Airflow 無法在 Windows 上運行。 請參閱此StackOverflow 帖子 上述步驟將允許您使用 Pip。

或者,我知道這可能會或可能不會被視為在 Windows 上運行,您可以安裝虛擬機客戶端,例如Oracle 的 VirtualboxVMware 的 Workstation ,然后設置您想要的任何 Linux 版本,例如Ubuntu Desktop ,然后您可以運行 Linux一般。 如果您需要更詳細的步驟來執行此操作,您可以在此處遵循 Stack Exchange 社區中的 AskUbuntu 答案。

或者 (2) ,您可以創建一個 AWS 帳戶,然后設置一個簡單的運行 Linux 的 ec2-instance ,然后通過ssh 進入該 ec2-instance ,然后將所有命令運行到您的心內容中。 AWS 提供免費套餐,因此您應該可以免費使用。 另外,AWS 有很好的文檔記錄,所以啟動和運行一個簡單的 Linux 服務器應該不會太難; 我估計初學者可以在大約一個小時內完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM