如何在Windows上运行Airflow

时间:2015-09-03 14:30:50

标签: 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

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

6 个答案:

答案 0 :(得分:13)

三个基本选项

我对这个问题进行了几次迭代,并在进行过程中记录了它们。我尝试过的三件事是:

  1. Install Airflow directly into Windows 10-尝试失败。
  2. Install Airflow into Windows 10 WSL with Ubuntu-效果很好。请注意,WSL是Linux的Windows子系统,您可以在Windows商店中免费获得。
  3. Install Airflow into Windows 10 via Docker + Centos-效果也很好。

请注意,如果要使其作为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更新
  • 通过以下方式安装pip:
    • sudo apt-get install python-pip
  • 运行以下2条命令以安装气流:
    • 导出SLUGIFY_USES_TEXT_UNIDECODE =是
    • pip install apache-airflow
  • 打开一个新终端(我很惊讶,但这似乎是必需的)。
  • 启动气流数据库:
    • 气流initdb

在此之后,您应该一切顺利!该博客提供了许多有关这些步骤的详细信息,以及有关设置WSL所需时间的粗略时间表,等等-因此,如果您在此方面花了很多时间。

答案 1 :(得分:10)

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

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

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

python C:\path\to\airflow %*

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

airflow init
airflow webserver -p 8080

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

答案 2 :(得分:6)

不幸的是,答案似乎是"否"截至2015年12月 - 请参阅https://github.com/airbnb/airflow/issues/709。这是因为转向枪炮。 gunicorn may get windows support in R18

答案 3 :(得分:2)

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

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

答案 4 :(得分:1)

您可以使用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应用程序。您可以使用the following tutorial from Microsoft完成此操作。

注2:如果像我一样,你是代理人(在你的工作或你背后的任何代理人)后面,你需要为pip设置两个环境变量才能工作在命令行上;在这种情况下,Cygwin。您可以关注this StackOverflow answer了解详情。所以我在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 post。上述步骤将允许您使用Pip。

或者,我知道这可能会或可能不会被视为在Windows上运行,您可以安装虚拟机客户端,例如Oracle's VirtualboxVMware's Workstation,然后设置您想要的任何Linux版本,例如Ubuntu Desktop,然后您可以正常运行Linux。如果您需要更详细的步骤来执行此操作,可以从Stack Exchange社区回答here中关注此AskUbuntu。

或者(2),您可以create an AWS account,然后setup a simple ec2-instance running Linux,然后ssh into that ec2-instance,然后将所有命令运行到您的心灵内容中。 AWS提供free tier,因此您应该可以免费使用它。此外,AWS有很好的文档记录,因此不需要太简单的Linux服务器启动和运行;我估计初学者可以在大约一个小时内完成。

答案 5 :(得分:0)

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

要访问气流工具,您需要访问container的bash外壳。您可以使用docker exec -it containerName bash进行操作。 一旦进入bash shell,您就可以运行命令行实用程序,例如**airflow list_dags**

希望有帮助