2017-08-06 140 views
0

Airflow似乎正在跳過我添加到/ usr/local/airflow/dags的dags。未在/ usr/local/airflow/dags中加載dag的氣流

當我運行

airflow list_dags 

輸出顯示

[2017-08-06 17:03:47,220] {models.py:168} INFO - Filling up the DagBag from /usr/local/airflow/dags 


------------------------------------------------------------------- 
DAGS 
------------------------------------------------------------------- 
example_bash_operator 
example_branch_dop_operator_v3 
example_branch_operator 
example_http_operator 
example_passing_params_via_test_command 
example_python_operator 
example_short_circuit_operator 
example_skip_dag 
example_subdag_operator 
example_subdag_operator.section-1 
example_subdag_operator.section-2 
example_trigger_controller_dag 
example_trigger_target_dag 
example_xcom 
latest_only 
latest_only_with_trigger 
test_utils 
tutorial 

但是,這並不包括在/ usr /本地/通風/的DAG中的DAG

ls -la /usr/local/airflow/dags/ 
total 20 
drwxr-xr-x 3 airflow airflow 4096 Aug 6 17:08 . 
drwxr-xr-x 4 airflow airflow 4096 Aug 6 16:57 .. 
-rw-r--r-- 1 airflow airflow 1645 Aug 6 17:03 custom_example_bash_operator.py 
drwxr-xr-x 2 airflow airflow 4096 Aug 6 17:08 __pycache__ 

有需要滿足一些其他條件以確定氣流來識別DAG並加載它?

回答

2

我的DAG正在被加載,但我的DAG名稱錯了。我期待達格由文件來命名,但名稱由第一個參數DAG構造

dag = DAG(
    'tutorial', default_args=default_args, schedule_interval=timedelta(1)) 
+1

是的,第一個元素是DAG id,您可以看到變量列表[here](https://airflow.incubator.apache.org/ code.html#airflow.models.DAG) –

2
dag = DAG(
    dag_id='example_bash_operator', 
    default_args=args, 
    schedule_interval='0 0 * * *', 
    dagrun_timeout=timedelta(minutes=60)) 

當DAG被實例化它由您在指定的名稱彈出確定dag_id屬性。 dag_id作爲您的DAG的唯一標識符

2

嘗試氣流initdb列出dag之前。這是因爲airflowlist_dags列出數據庫中存在的所有dag(而不是你提到的文件夾)。 Airflow initdb將爲數據庫中的這些dag創建條目。

確保將環境變量AIRFLOW_HOME設置爲/ usr/local/airflow。如果未設置此變量,氣流會在家庭氣流文件夾中查找殘渣,但您的情況可能不存在。

0

嘗試重新啓動調度程序。當需要將新的DAGS添加到DAG包時,需要重新啓動調度程序