我在不同的AWS机器上运行气流服务器和工作人员.我已经同步了它们之间airflow initdb的dags 文件夹,在两者上运行,并检查当我运行时dag_id是相同的airflow list_tasks <dag_id>
当我运行调度程序和worker时,我在worker上遇到了这个错误:
airflow.exceptions.AirflowException:找不到dag_id :. dag不存在或者无法解析.[...]命令...-- local -sd /home/ubuntu/airflow/dags/airflow_tutorial.py'
似乎问题是路径错误(/home/ubuntu/airflow/dags/airflow_tutorial.py),因为正确的路径是/ home/hadoop/...
在服务器机器上,路径是使用ubuntu,但在两个配置文件上它都是简单的 ~/airflow/...
是什么让工人看到这条路而不是正确的呢?
我怎么告诉它看它自己的家庭目录?
编辑:
grep -R ubuntu了,唯一出现在日志中ubuntu东西时,一切正常.这使我相信,由于某种原因,气流为工人提供了完成任务的全部途径Mic*_*tor 14
--raw在airflow run命令中添加参数有助于我查看原始异常是什么.在我的例子中,元数据数据库实例太慢,并且由于超时而加载dags失败.我已修复它:
dagbag_import_timeoutairflow.cfg中的参数希望这可以帮助!
我遇到了同样的事情 - 工作进程似乎传递了一个--sd与调度程序机器上的 dags 文件夹相对应的参数,而不是在工作机器上(即使在工作人员dags_folder的气流配置文件中正确设置)。在我的情况下,我能够通过在调度程序主机上创建一个符号链接来使事情工作,这样dags_folder可以将其设置为相同的值。(在您的示例中,这意味着在调度程序机器上创建符号链接 /home/hadoop -> /home/ubuntu,然后将 dags_folder 设置为 /home/hadoop)。因此,这并不是问题的真正答案,但在某些情况下是可行的解决方法。
| 归档时间: |
|
| 查看次数: |
9725 次 |
| 最近记录: |