如何在Windows上运行Airflow

Raf*_*ael 24 python windows flask flask-admin airflow

运行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
Run Code Online (Sandbox Code Playgroud)

Airflow实用程序在命令行中不可用,我无法在其他地方找到它以手动添加.Airflow如何在Windows上运行?

Joh*_*0te 18

三个基本选项

我经历了这个问题的几次迭代,并记录下来.我尝试的三件事是:

  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
  • 安装点子:
    • sudo apt-get install python-pip
  • 运行以下2个命令安装气流:
    • export SLUGIFY_USES_TEXT_UNIDECODE = yes
    • pip install apache-airflow
  • 打开一个新的终端(我感到很惊讶,但这似乎是必需的).
  • 启动气流DB:
    • 气流initdb

在此之后,你应该好好去!博客中有许多关于这些步骤的详细信息以及设置WSL需要多长时间的粗略时间表等等 - 所以如果你很难在那里潜水一些.


小智 15

我正在使用 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) 要复制 dag,请使用此命令 docker cp sample_dag.py containerName:/usr/local/airflow/dags

要访问气流实用程序,您需要访问 container 的 bash shell。您可以使用docker exec -it containerName bash. 进入 bash shell 后,您可以运行命令行实用程序,例如**airflow list_dags**

希望能帮助到你


Raf*_*ael 12

不要通过pip安装Airflow,而是下载Airflow项目的GitHub上的zip,将其解压缩并在其文件夹中,python setup.py install在命令行上运行 .ERROR - 'module' object has no attribute 'SIGALRM'错误会发生,但到目前为止这对Airflow的功能没有影响.

使用此方法,气流工具将不可用作命令.作为解决方法,使用该[current folder]\build\scripts-2.7\airflow文件,它是airflow util的python脚本.

另一种解决方案是向System PATH变量附加一个指向运行airflow的批处理文件的链接(airflow.bat):

python C:\path\to\airflow %*
Run Code Online (Sandbox Code Playgroud)

从这一点开始,可以正常遵循教程:

airflow init
airflow webserver -p 8080
Run Code Online (Sandbox Code Playgroud)

我没有测试过Airflow的DAG在Windows上的运行情况.

  • 由于缺少仅适用于 UNIX 系统的模块“pwd”,这不再起作用。由 `airflow\bin\cli.py", line 16` 间接引用,并由 `daemon\daemon.py", line 25` 直接引用 (11认同)

Sam*_*eth 6

不幸的是,截至2015年12月,答案似乎是"否" - 请参阅https://github.com/airbnb/airflow/issues/709.这是因为转向枪炮.gunicorn可能会在R18获得Windows支持.


Ale*_*lex 6

您可以bash在 Windows中激活并按原样遵循教程。我能够在上面成功启动并运行。

完成安装后,编辑airflow.cfg以将所有配置指向 Windows 系统中的某个位置,而不是 lxss (ubuntu),因为 ubuntu 周围存在错误,不显示由 Windows 系统编写的文件。

  • 嗨,Ayush,这在当前版本的气流中不再起作用。它总是失败,并显示``ModuleNotFoundError: No module named 'pwd'```,该模块由于技术原因不适用于 Windows。 (4认同)

Kyl*_*ine 6

您可以使用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
Run Code Online (Sandbox Code Playgroud)

注 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
Run Code Online (Sandbox Code Playgroud)

不再有效:显然上述所有工作都是徒劳的,因为 Airflow 无法在 Windows 上运行。请参阅此StackOverflow 帖子。上述步骤将允许您使用 Pip。

或者,我知道这可能会或可能不会被视为在 Windows 上运行,您可以安装虚拟机客户端,例如Oracle 的 VirtualboxVMware 的 Workstation,然后设置您想要的任何 Linux 版本,例如Ubuntu Desktop,然后您就可以运行 Linux通常情况下。如果您需要更详细的步骤来执行此操作,您可以按照此处的 Stack Exchange 社区答案中的 AskUbuntu 进行操作。

或者 (2),您可以创建一个 AWS 帐户,然后设置一个运行 Linux 的简单 ec2 实例,然后通过ssh 进入该 ec2 实例,然后将所有命令运行到您想要的内容。AWS 提供免费套餐,因此您应该可以免费使用。另外,AWS 有很好的文档记录,因此启动并运行一个简单的 Linux 服务器应该不会太难;我估计初学者一个小时左右就能完成。