如何向 Airflow 添加新的 DAG?

Posted

技术标签:

【中文标题】如何向 Airflow 添加新的 DAG?【英文标题】:How to add new DAGs to Airflow? 【发布时间】:2017-12-04 23:44:59 【问题描述】:

我在名为tutorial_2.py 的文件中定义了一个DAG(实际上是airflow 教程中提供的tutorial.py 的副本,除了dag_id 更改为tutorial_2)。

当我查看未修改的默认airflow.cfg(位于~/airflow)时,我看到dags_folder 设置为/home/alex/airflow/dags

我做cd /home/alex/airflow; mkdir dags; cd dags; cp [...]/tutorial_2.py tutorial_2.py。现在我有一个与airflow.cfg 中设置的路径匹配的dags 文件夹,其中包含我之前创建的tutorial_2.py 文件。

但是,当我运行 airflow list_dags 时,我只得到与默认教程 DAG 对应的名称。

我想让tutorial_2 出现在我的 DAG 列表中,以便我可以开始与之交互。 python tutorial_2.pyairflow resetdb 都没有导致它出现在列表中。

我该如何补救?

【问题讨论】:

【参考方案1】:

我认为这是因为您还没有导出AIRFLOW_HOME。 尝试做: AIRFLOW_HOME="/home/alex/airflow/dags" airflow list_dags。 如果这不起作用,请执行两个步骤 export AIRFLOW_HOME="/home/alex/airflow/dags" airflow list_dags 我相信这应该有效。试试看?

【讨论】:

这应该是正确的答案,但需要注意的是您可能还需要检查和更正airflow.cfg 中的airflow_homedags_folder 变量。我仍然不清楚为什么需要三个不同的变量。参看。 here.【参考方案2】:

据我了解,AIRFLOW_HOME 应该链接到存储airflow.cfg 的目录。然后,airflow.cfg 可以应用并将 dag 目录设置为您放入其中的值。

重要的一点是:如果你的AIRFLOW_HOME 没有设置,airflow.cfg 是没用的

【讨论】:

正是皮埃尔所说的。^【参考方案3】:

问题是您的目录中可能存在两个气流配置,因此请检查 /root/airflow/dags,如果是,则需要更改两个气流.cfg 中的 dags_folder 路径

【讨论】:

【参考方案4】:

我可能正在使用最新的气流,命令已更改。对我有用的是:

export AIRFLOW_HOME="~/airflow" 然后运行airflow dags list

【讨论】:

以上是关于如何向 Airflow 添加新的 DAG?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 在 Airflow 中成功触发另一个 DAG 时触发 DAG?

将 Airflow 运行 id、dag id、执行日期等变量导出到 Bigquery 表

如何在 Airflow 中设置 DAG 之间的依赖关系?

如何使用 TriggerDagRunOperator 触发 Airflow -dag

Python笔记 · Airflow中的DAG与With语法

添加第一个 dag 时出现 Cloud Composer 调度程序错误