我正在尝试在ubuntu服务器上设置气流。当我用airflow test <dag_id> <task_id>
测试它们时,我已经写了一些看起来不错的dag。我已经使用以下命令将气流作为守护程序运行
airflow webserver -p 8080 -D
当我转到http://localhost:8080
时,我无法在气流UI中单击该dags。相反,我在dag名称旁边看到一个小图标:
奇怪的是,当我使用命令手动运行气流时
airflow webserver -p 8080
我可以单击dag!
我认为此问题是由以下事实引起的:与以手动方式运行时相比,作为守护程序运行时,网络服务器具有不同的配置。我不明白为什么,因为在这两种情况下,Web服务器都应该在同一地点寻找Dags,对吗?
问题:如何解决此问题?是什么原因导致我在手动运行Web服务器时识别到dag而在将Web服务器作为守护进程运行时却未被识别?
答案 0 :(得分:0)
我不确定为什么它可以工作(它可能与守护进程运行的位置有关),但是它可以工作:
在不同的dag文件中,我通过指向dag所在的目录(dags
文件夹)来指定路径。因此它将定义这样的日志位置:
log = ./log/etl_log.log
在手动运行Web服务器时,这不会引起任何问题,但是在将Web服务器作为守护进程运行时确实会出现问题。因为在我将日志位置更改为
之后log = /home/user/airflow/dags/log/etl_log.log
我能够在ui中访问dag。