我在不同的 AWS 机器上运行气流服务器和工作线程。
我已经在它们之间同步了 dags 文件夹,然后运行airflow initdb
在两者上,并在运行时检查 dag_id 是否相同airflow list_tasks <dag_id>
当我运行调度程序和工作程序时,我在工作程序上收到此错误:
airflow.exceptions.AirflowException:找不到 dag_id:。 dag 要么不存在,要么解析失败。 [...]命令...--local -sd /home/ubuntu/airflow/dags/airflow_tutorial.py'
问题似乎是路径错误(/home/ubuntu/airflow/dags/airflowtutorial.py),因为正确的路径是/home/hadoop/...
在服务器计算机上,路径是 ubuntu,但在两个配置文件上,它只是~/airflow/...
是什么让工人沿着这条路径而不是正确的路径寻找?
我如何告诉它查看它自己的主目录?
edit:
- 不太可能是配置问题。我跑了
grep -R ubuntu
唯一出现在日志中
- 当我在计算机上运行相同的命令时
ubuntu
作为用户,一切正常。这让我相信,出于某种原因,气流为工作人员提供了任务的完整路径
Adding --raw
参数到airflow run
命令帮助我查看了最初的异常是什么。就我而言,元数据数据库实例太慢,并且由于超时而加载 dags 失败。我已经通过以下方式修复了它:
- 升级数据库实例
- 增加参数
dagbag_import_timeout
在气流.cfg 中
希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)