在EC2的24倍大型计算机上运行时,气流出现问题。
我必须注意,并行度为256。
有几天,达格伦以“失败”状态结束,原因有两个未定:
我必须注意,这两个任务的日志都是空的
这是这些情况下的tast实例详细信息:
请问有什么解决方案吗?
答案 0 :(得分:1)
我遇到第二种情况(“其他任务的状态不为'null'”)的另一种情况是任务实例发生了更改,特别是更改了操作员类型。
我希望你已经得到了答案/能够继续前进。上个月,我在这个问题上被困了几次,所以我想我要记录一下我最终为解决该问题所做的事情。
示例:
尽我所能拼凑,正在发生的事情是:
task_instance
中
operator
task_instance
;没有看到它,它将状态(状态)=“已删除”更新关联的数据库记录通过查询,您可以看到受此过程影响的任务:
SELECT *
FROM task_instance
WHERE state = 'removed'
似乎在气流1.10的此问题上已有工作:
话虽这么说,但我不确定100%的提交是否可以解决此问题。似乎一般的哲学仍然是"when a DAG changes, you should increment / change the DAG name"。
我不喜欢这种解决方案,因为它很难迭代根本上是一个管道的内容。我使用的替代方法是(部分)遵循recommendations from Astronomer并“淘汰” DAG历史。为此,您需要:
答案 1 :(得分:0)
当手动更改任务状态(可能通过“标记成功”选项)或强制进入状态(如upstream_failed
)并且任务从不接收hostname
值时,可能会发生这种情况记录中,并且没有任何日志或PID