如何 运行 Windows 上的气流

How to run Airflow on Windows

运行ning 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 上 运行?

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

使用此方法,airflow util 将无法用作命令。 作为解决方法,使用 [current folder]\build\scripts-2.7\airflow 文件,它是气流实用程序的 python 脚本。

另一种解决方案是将 link 附加到系统 PATH 变量的批处理文件中 运行s airflow (airflow.bat):

python C:\path\to\airflow %*

至此,教程可以正常跟进了:

airflow init
airflow webserver -p 8080

我还没有在 Windows.

上测试 Airflow 的 DAG 运行 有多好或是否如此。

不幸的是,截至 2015 年 12 月,这个问题的答案似乎是 "No" - 请参阅 https://github.com/airbnb/airflow/issues/709. This is because of the move to gunicorn. gunicorn may get windows support in R18

您可以在 windows 中激活 bash 并按原样按照教程进行操作。 我能够起床并 运行 成功地按照上面的步骤进行。

安装完成后,编辑 airflow.cfg 将所有配置指向 windows 系统中的某处,而不是 lxss (ubuntu),因为 [=19] 周围存在错误=] 不显示 windows 系统写入的文件。

您可以使用 Cygwin 来完成。 Cygwin 是一个命令行 shell,运行 在 Windows 上运行并模拟 Linux。所以你将能够运行命令,

# 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:如果您在公司提供的计算机上 运行ning Cygwin,您可能需要以管理员身份运行 Cygwin 应用程序。您可以使用 the following tutorial from Microsoft.

注意 2: 如果像我一样你在代理后面(在你的工作中或你在后面的任何代理)你需要为 pip 设置两个环境变量来在命令行上工作;在这种情况下是 Cygwin。您可以关注this Whosebug 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 上工作。请看这个 。不过,以上步骤将允许您使用 Pip。

或者,我知道这可能会或可能不会被视为 运行 on Windows,您可以安装一个虚拟机客户端,例如Oracle's Virtualbox or VMware's Workstation and then setup whatever Linux version you want such as Ubuntu Desktop and then you can run Linux normally. If you need more detailed steps to do this you can follow this AskUbuntu from the Stack Exchange community answer here.

或者 (2),你可以 create an AWS account, then setup a simple ec2-instance running Linux, then ssh into that ec2-instance, and then run all your commands to your hearts content. AWS offers a free tier 所以你应该可以免费做。另外,AWS 有很好的文档记录,因此启动和 运行 一个简单的 Linux 服务器应该不会太难;我估计初学者一个小时左右就能搞定。

三个基本选项

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

  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 中的服务有点违反范式,因为无论如何每个容器都应该是单一的 process/unit 责任。

#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 Python 3)
  • 运行 下面2条命令安装airflow:
    • export SLUGIFY_USES_TEXT_UNIDECODE=yes
    • pip install apache-airflow(或 pip3 Python 3)
  • 打开一个新终端(我很惊讶,但这似乎是必需的)。
  • 初始化气流数据库:
    • airflow initdb

在此之后,您应该可以开始了!该博客详细介绍了其中许多步骤以及设置 WSL 需要多长时间等的粗略时间表 - 因此,如果您遇到困难,可以深入了解更多内容。

我 运行nig airflow on windows 10 using docker.

1) 首先,您需要在 windows 上安装 docker。

2) 运行 命令 docker version 从命令提示符如果你得到输出意味着 docker 安装成功

2) 然后你需要使用命令docker pull puckel/docker-airflow

拉取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

要访问 airflow 实用程序,您需要访问容器的 bash shell。您可以使用 docker exec -it containerName bash 这样做。 进入 bash shell 后,您可以 运行 命令行实用程序 ex **airflow list_dags**

希望对您有所帮助