it-swarm.com.de

So führen Sie Airflow unter Windows aus

Die üblichen Anweisungen zum Ausführen von Airflow gelten nicht in einer Windows-Umgebung:

# 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

Das Airflow-Hilfsprogramm ist nicht in der Befehlszeile verfügbar und ich kann es nicht finden, es manuell hinzuzufügen.

15
Rafael

Sie können bash in Windows aktivieren und dem Tutorial folgen, wie es ist . Ich konnte erfolgreich loslegen, wenn Sie oben folgten.

Wenn Sie mit der Installation fertig sind, bearbeiten Sie airflow.cfg so, dass alle Ihre Konfigurationen auf irgendwo in Ihrem Windows-System und nicht auf lxss (ubuntu) verweisen.

1
Ayush K Singh

Statt Airflow via pip zu installieren, laden Sie die Zip-Datei von GitHub des Airflow-Projekts herunter, entpacken Sie sie und führen Sie in ihrem Ordner python setup.py install in der Befehlszeile aus. ERROR - 'module' object has no attribute 'SIGALRM'-Fehler werden auftreten, hatten jedoch bisher keine Auswirkungen auf die Airflow-Funktionen.

Bei Verwendung dieser Methode ist das Airflow-Hilfsprogramm nicht als Befehl verfügbar. Verwenden Sie als Abhilfemaßnahme die [current folder]\build\scripts-2.7\airflow-Datei, das Python-Skript für das Airflow-Hilfsprogramm.

Eine andere Lösung besteht darin, an die System PATH-Variable einen Link zu einer Batchdatei anzuhängen, die den Luftstrom ausführt (airflow.bat):

python C:\path\to\airflow %*

Von diesem Punkt an kann das Tutorial normalerweise befolgt werden:

airflow init
airflow webserver -p 8080

Ich habe nicht getestet, wie gut oder ob Airflow-DAGs unter Windows laufen.

10
Rafael

Die Antwort darauf scheint ab Dezember 2015 "Nein" zu sein - siehe https://github.com/airbnb/airflow/issues/709 . Dies ist wegen des Umzugs zu Gunicorn. gunicorn kann Windows-Unterstützung in R18 erhalten.

6
Samir Seth

Drei grundlegende Optionen

Ich ging einige Iterationen dieses Problems durch und dokumentierte sie im weiteren Verlauf. Die drei Dinge, die ich ausprobiert habe, waren:

  1. Installieren Sie Airflow direkt in Windows 10 - Dieser Versuch ist fehlgeschlagen.
  2. Installiere Airflow in Windows 10 WSL mit Ubuntu - Das hat super funktioniert. Beachten Sie, dass es sich bei WSL um ein Windows-Subsystem für Linux handelt, das Sie kostenlos im Windows Store erhalten können.
  3. Installiere Airflow in Windows 10 über Docker + Centos - Das hat auch gut funktioniert.

Wenn Sie möchten, dass es als Linux-Dienst ausgeführt wird, ist Option 2 nicht möglich. Option 3 ist möglich, aber ich habe es nicht getan, da es erforderlich ist, privilegierte Container im Docker zu aktivieren (was ich wollte.) Ich weiß nicht, wann ich angefangen habe. Das Ausführen eines Dienstes in Docker ist eine Art Paradigma, da jeder Container ohnehin ein einzelner Prozess/eine Einheit der Verantwortung sein sollte.

Detaillierte Beschreibung von # 2 - WSL-Option

Wenn Sie sich für Option 2 entscheiden, sind die grundlegenden Schritte:

  • Installieren Sie WSL Ubuntu und öffnen Sie es.
  • Vergewissern Sie sich, dass Python 3.6.5 oder so ("python3 -version") enthalten ist.
  • Fügen Sie diese Pakete hinzu, falls dies noch immer der Fall ist, damit die Installation von PIP funktioniert .. .......
    • Sudo apt-get install Software-Eigenschaften-Common
    • Sudo apt-add-repository Universum
    • Sudo apt-get Update
  • Installieren Sie pip mit:
    • Sudo apt-get install python-pip
  • Führen Sie die folgenden zwei Befehle aus, um den Luftstrom zu installieren:
    • export SLUGIFY_USES_TEXT_UNIDECODE = yes
    • pip installiere Apache-Luftstrom
  • Öffnen Sie ein neues Terminal (ich war überrascht, aber dies schien erforderlich zu sein).
  • Starten Sie den Luftstrom-DB:
    • luftstrom initdb

Danach solltest du gut sein! Der Blog enthält viele Details zu vielen dieser Schritte und grobe Zeitvorgaben für die Einrichtung der WSL usw. - wenn Sie also Schwierigkeiten haben, noch ein wenig einzutauchen.

Sie können dies mit Cygwin tun. Cygwin ist eine Befehlszeilen-Shell, die unter Windows ausgeführt wird und Linux emuliert. So können Sie die Befehle ausführen,

# 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

Hinweis 1: Wenn Sie Cygwin auf Ihrem Computer ausführen, müssen Sie die Cygwin-Anwendung möglicherweise als Administrator ausführen. Sie können dies mit dem folgenden Tutorial von Microsoft tun.

Note 2: Wenn Sie wie ich hinter einem Proxy stehen (bei Ihrer Arbeit oder bei welchem ​​Proxy auch immer), müssen Sie zwei Umgebungsvariablen setzen, damit pip auf der Kommandozeile arbeiten kann. in diesem Fall Cygwin. Sie können dieser StackOverflow-Antwort für weitere Details folgen. Also setze ich die folgenden zwei Umgebungsvariablen auf meinem Windows-Rechner:

// 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:[email protected]:yourProxyPortNumberGoesHere

HTTP_PROXY=http://myUsernameGoesHere:[email protected]:yourProxyPortNumberGoesHere

No Longer Works: Anscheinend waren alle oben genannten Arbeiten vergebens, da Airflow unter Windows nicht funktioniert. Bitte sehen Sie diesen StackOverflow post . Mit den obigen Schritten können Sie jedoch Pip verwenden.

Alternativ, und ich weiß, dass dies unter Windows als ausgeführt angesehen wird oder nicht, Sie könnten einen Client für virtuelle Maschinen wie Oracle Virtualbox oder VMware Workstation installieren und dann die Linux-Version einrichten Sie möchten beispielsweise Ubuntu Desktop und dann können Sie Linux normal ausführen. Wenn Sie dazu detailliertere Schritte benötigen, können Sie diesem AskUbuntu aus der Stack Exchange-Community-Antwort hier folgen.

Alternativ (2) können Sie ein AWS-Konto erstellen , dann eine einfache ec2-Instanz mit Linux einrichten, dann ssh in diese ec2-Instanz einfügen und dann alles ausführen Ihre Befehle nach Herzenslust. AWS bietet eine kostenlose Stufe , damit Sie dies kostenlos tun können. Außerdem ist AWS sehr gut dokumentiert, sodass es nicht zu schwer sein sollte, einen einfachen Linux-Server zum Laufen zu bringen. Ich schätze, ein Anfänger könnte in etwa einer Stunde damit fertig werden.

1