Wie starte ich den Airflow-Webserver?

11

Ich verwende den Luftstrom für mein Datenpipeline-Projekt. Ich habe mein Projekt im Luftstrom konfiguriert und starte den Luftstromserver als Backend-Prozess mit dem folgenden Befehl

%Vor%

Server läuft erfolgreich im Backend. Jetzt möchte ich die Authentifizierung im Luftstrom und die Konfigurationsänderungen in der airflow.cfg aktivieren, aber die Authentifizierungsfunktion wird nicht im Server angezeigt. Wenn ich den Luftstromserver in meinem lokalen Rechner stoppe und starte, funktioniert das.

Also, wie kann ich meinen Daemon Airflow Webserver Prozess in meinem Server neu starten?

    
MJK 22.08.2016, 07:19
quelle

5 Antworten

8

Können Sie $AIRFLOW_HOME/airflow-webserver.pid für die Prozess-ID Ihres Webserver-Daemons überprüfen?

Übergeben Sie es dann ein Kill-Signal, um es zu töten

%Vor%

Dann führe einfach

aus %Vor%

um den Daemon neu zu starten

    
captaincapsaicin 22.08.2016 23:04
quelle
8

Ich rate, Luftstrom auf eine robuste Art und Weise zu führen, mit automatischer Wiederherstellung mit systemd so kannst du tun:
 - um systemctl start airflow
zu starten  - um systemctl stop airflow
zu stoppen  - um systemctl restart airflow
neu zu starten Dazu benötigen Sie eine Systemdatei 'Einheit'. Als (Arbeits) Beispiel können Sie folgendes verwenden:
put it in /lib/systemd/system/airflow.service

%Vor%

P.S: Ändern Sie AIRFLOW_HOME in Ihren Luftstromordner mit der Konfiguration

    
Vlad Lyga 17.05.2017 11:01
quelle
4

Verwenden Sie die Signalverarbeitung des Airflow-Webservers (Gunicorn)

Airflow verwendet gunicorn als HTTP-Server, damit Sie POSIX-typische Signale senden können. Ein Signal, das üblicherweise von Dämonen zum Neustart verwendet wird, ist HUP .

Sie müssen die PID-Datei für den Airflow-Webserverdämon suchen, um die richtige Prozess-ID zum Senden des Signals zu erhalten. Diese Datei könnte in $AIRFLOW_HOME oder auch /var/run sein, wo Sie viele PIDs finden.

Wenn die pid-Datei in /var/run ist, können Sie den folgenden Befehl ausführen:

%Vor%

gunicorn verwendet ein Preforking-Modell, also Master- und Worker-Prozesse. Das Signal HUP wird an den Masterprozess gesendet, der diese Aktionen ausführt:

  

HUP: Laden Sie die Konfiguration neu, starten Sie die neuen Worker-Prozesse mit einer neuen Konfiguration und schalten Sie ältere Worker ordnungsgemäß herunter. Wenn die Anwendung nicht geladen ist (mit der Option preload_app), lädt Gunicorn auch die neue Version.

Weitere Informationen finden Sie in den Nachrichtenhandhabungsdokumenten von gunicorn .

Dies ist meist eine erweiterte Version von Captaincapsaicins Antwort, aber mit HUP (SIGHUP) anstelle von KILL (SIGKILL), um den Prozess neu zu laden, anstatt ihn tatsächlich zu beenden und neu zu starten.

    
MAP 29.03.2017 18:39
quelle
1

Das hat für mich funktioniert (mehrere Male!: D)

finde die Prozess-ID: (unter der Annahme, dass 8080 der Port ist)

%Vor%

töte es

%Vor%     
Dotan 06.04.2017 14:28
quelle
0

Erstellen Sie ein Init-Skript und verwenden Sie den Befehl "daemon", um dies als Dienst auszuführen.

daemon --user="$ {USER}" --pidfile="$ {PID_FILE}" Luftstrom Webserver -p 8090 & gt; & gt; "$ {LOG_FILE}" 2 & gt; & amp; 1 & amp;

    
Vijayanand 09.09.2016 22:19
quelle

Tags und Links