Airflow 将继续显示示例 dags,即使将其从配置中删除后也是如此
Airflow will keep showing example dags even after removing it from configuration
即使我在配置文件中关闭 load_examples = False
,Airflow 示例 dag 仍保留在 UI 中。
系统通知 dag 不存在于 dag 文件夹中,但它们仍保留在 UI 中,因为调度程序已将其标记为在元数据数据库中处于活动状态。
我知道从那里删除它们的一种方法是直接删除数据库中的这些行,但当然这不是 ideal.How 我应该继续从 UI 中删除这些 dags 吗?
假设您已经通过 Anaconda 安装了 airflow。
否则在您的 python site-packages 文件夹中查找 airflow 并按照以下步骤操作。
按照说明操作后
- 转到 $AIRFLOW_HOME/lib/python2.7/site-packages/airflow 目录
- 删除名为 example_dags 的目录或将其重命名以恢复原状
- 重新启动您的网络服务器
cat $AIRFLOW_HOME/airflow-webserver.pid | xargs kill -9
airflow webserver -p [port-number]
目前无法阻止已删除的 DAG 在 UI 上显示,除非手动删除数据库中的相应行。唯一的其他方法是在 initdb 之后重新启动服务器。
绝对airflow resetdb
在这里工作。
我所做的是创建多个 shell 脚本用于各种目的,如启动网络服务器、启动调度程序、刷新 dag 等。我只需要 运行 脚本来执行我想做的事情。这是列表:
(venv) (base) [pchoix@hadoop02 airflow]$ cat refresh_airflow_dags.sh
#!/bin/bash
cd ~
source venv/bin/activate
airflow resetdb
(venv) (base) [pchoix@hadoop02 airflow]$ cat start_airflow_scheduler.sh
#!/bin/bash
cd /home/pchoix
source venv/bin/activate
cd airflow
nohup airflow scheduler >> "logs/schd/$(date +'%Y%m%d%I%M%p').log" &
(venv) (base) [pchoix@hadoop02 airflow]$ cat start_airflow_webserver.sh
#!/bin/bash
cd /home/pchoix
source venv/bin/activate
cd airflow
nohup airflow webserver >> "logs/web/$(date +'%Y%m%d%I%M%p').log" &
(venv) (base) [pchoix@hadoop02 airflow]$ cat start_airflow.sh
#!/bin/bash
cd /home/pchoix
source venv/bin/activate
cd airflow
nohup airflow webserver >> "logs/web/$(date +'%Y%m%d%I%M%p').log" &
nohup airflow scheduler >> "logs/schd/$(date +'%Y%m%d%I%M%p').log" &
别忘了chmod +x
那些脚本
希望对您有所帮助。
气流 1.10+:
- 编辑 airflow.cfg 并设置
load_examples = False
- 对于每个示例 dag 运行 命令
airflow delete_dag example_dag_to_delete
这避免了重置整个气流数据库。
(自 Airflow 1.10 起有从数据库中删除 dag 的命令,请参阅 )
即使我在配置文件中关闭 load_examples = False
,Airflow 示例 dag 仍保留在 UI 中。
系统通知 dag 不存在于 dag 文件夹中,但它们仍保留在 UI 中,因为调度程序已将其标记为在元数据数据库中处于活动状态。
我知道从那里删除它们的一种方法是直接删除数据库中的这些行,但当然这不是 ideal.How 我应该继续从 UI 中删除这些 dags 吗?
假设您已经通过 Anaconda 安装了 airflow。 否则在您的 python site-packages 文件夹中查找 airflow 并按照以下步骤操作。
按照说明操作后
- 转到 $AIRFLOW_HOME/lib/python2.7/site-packages/airflow 目录
- 删除名为 example_dags 的目录或将其重命名以恢复原状
- 重新启动您的网络服务器
cat $AIRFLOW_HOME/airflow-webserver.pid | xargs kill -9
airflow webserver -p [port-number]
目前无法阻止已删除的 DAG 在 UI 上显示,除非手动删除数据库中的相应行。唯一的其他方法是在 initdb 之后重新启动服务器。
绝对airflow resetdb
在这里工作。
我所做的是创建多个 shell 脚本用于各种目的,如启动网络服务器、启动调度程序、刷新 dag 等。我只需要 运行 脚本来执行我想做的事情。这是列表:
(venv) (base) [pchoix@hadoop02 airflow]$ cat refresh_airflow_dags.sh
#!/bin/bash
cd ~
source venv/bin/activate
airflow resetdb
(venv) (base) [pchoix@hadoop02 airflow]$ cat start_airflow_scheduler.sh
#!/bin/bash
cd /home/pchoix
source venv/bin/activate
cd airflow
nohup airflow scheduler >> "logs/schd/$(date +'%Y%m%d%I%M%p').log" &
(venv) (base) [pchoix@hadoop02 airflow]$ cat start_airflow_webserver.sh
#!/bin/bash
cd /home/pchoix
source venv/bin/activate
cd airflow
nohup airflow webserver >> "logs/web/$(date +'%Y%m%d%I%M%p').log" &
(venv) (base) [pchoix@hadoop02 airflow]$ cat start_airflow.sh
#!/bin/bash
cd /home/pchoix
source venv/bin/activate
cd airflow
nohup airflow webserver >> "logs/web/$(date +'%Y%m%d%I%M%p').log" &
nohup airflow scheduler >> "logs/schd/$(date +'%Y%m%d%I%M%p').log" &
别忘了chmod +x
那些脚本
希望对您有所帮助。
气流 1.10+:
- 编辑 airflow.cfg 并设置
load_examples = False
- 对于每个示例 dag 运行 命令
airflow delete_dag example_dag_to_delete
这避免了重置整个气流数据库。
(自 Airflow 1.10 起有从数据库中删除 dag 的命令,请参阅