2016-05-05 9 views
12

Sto provando a utilizzare il flusso d'aria per definire un flusso di lavoro specifico che desidero attivare manualmente dalla riga di comando.Attivazione di un DAG del flusso d'aria dal terminale non funzionante

Creo il DAG e aggiungo una serie di attività.

dag = airflow.DAG(
    "DAG_NAME", 
    start_date=datetime(2015, 1, 1), 
    schedule_interval=None, 
    default_args=args) 

Ho poi eseguito nel terminale

airflow trigger_dag DAG_NAME 

e non succede nulla. Lo scheduler è in esecuzione in un altro thread. Qualsiasi direzione è molto apprezzata. Grazie

+0

puoi vedere il tuo dag quando fai un 'airflow list_dags'? –

risposta

5

Potresti aver disabilitato il flusso di lavoro. Per abilitare il flusso di lavoro manualmente. Aprire il server web flusso d'aria da

$ airflow webserver -p 8080 

Vai a http://localhost:8080. Dovresti vedere l'elenco di tutti i dags disponibili con un pulsante di attivazione/disattivazione. Di default, tutto è disattivato. Cerca il tuo dag e attiva il tuo flusso di lavoro. Ora prova ad attivare il flusso di lavoro dal terminale. Dovrebbe funzionare ora.

0

Assicurarsi inoltre che il DAG stesso sia acceso nell'interfaccia utente.

20

Ho appena riscontrato lo stesso problema.

Dando per scontato che è in grado di vedere il vostro dag in airflow list_dags o tramite il server web allora:

Non solo ho dovuto accendere il dag nell'interfaccia utente web, ma ho avuto anche per garantire che airflow scheduler correva come processo separato.

Una volta ho avuto l'esecuzione dello scheduler sono stato in grado di eseguire con successo il mio dag utilizzando airflow trigger_dag <dag_id>

La mia configurazione dag non è significativamente diversa dalla vostra. Ho anche schedule_interval=None

+1

Recentemente ho riscontrato lo stesso problema del poster: la modifica del DAG nell'interfaccia utente mi consentiva di attivare correttamente una corsa manuale. Grazie! – AetherUnbound

+0

Ho avuto un problema simile cercando di eseguire uno degli esempi di serie con 'airflow trigger_dag'. In quel caso il bit mancante era che anche se i DAG sono stati caricati dal modulo 'example_dags' devono anche essere visibili allo' scheduler' in 'DAGS_FOLDER' o non li controllano. –

1

per prima cosa assicurati che la stringa di connessione al database sul flusso d'aria funzioni, che sia su postgres, sqlite (per impostazione predefinita) o su qualsiasi altro database. Quindi eseguire il comando

airflow initdb 

Questo comando non dovrebbe mostrare eventuali errori nei collegamenti

In secondo luogo assicurarsi che il proprio server web è in esecuzione su un thread separato

airflow webserver 

quindi eseguire lo schdeuler su un thread diverso

airflow scheduler 

Infine attivare il dag su un thread diverso afte R lo scheduler è in esecuzione

airflow trigger_dag dag_id 

Assicurarsi inoltre che il nome dag e del compito sono presenti nel dag e compito lista

airflow list_dags 
airflow list_tasks dag_id 

E se il DAG è spento nella vostra interfaccia utente, quindi impostare su.

Problemi correlati