【发布时间】:2020-04-09 15:45:45
【问题描述】:
我有一个 DAG 运行了几个月,从上周开始它的行为异常。我正在运行一个 bash 运算符,它正在执行一个 shell 脚本,在 shell 脚本中我们有一个配置单元查询。 重试次数设置为 4,如下所示。
default_args = { '所有者':'气流', 'depends_on_past':错误, '电子邮件':['airflow@example.com'], 'email_on_failure':错误, 'email_on_retry':错误, “重试”:4, 'retry_delay': timedelta(分钟=5) }
我可以在日志中看到它正在触发 hive 查询并在一段时间(大约 5 到 6 分钟)后失去心跳并进行重试。 Yarn 显示查询尚未完成,但气流触发了下一次运行。现在在纱线中 2 个查询正在运行(一个用于第一次运行,第二个用于重试),用于同一任务。类似地,此 dag 为同一任务触发 5 个查询(因为重试为 4)并在最后一个显示失败状态. 有趣的一点是,同一个 dag 长期以来一直运行良好。此外,这也是生产中与 hive 相关的所有 dags 的问题。 今天我升级到最新版本的气流 v 1.10.9。 在这种情况下,我使用的是 LocalExecuter。
有人遇到过类似的问题吗?
【问题讨论】:
-
经过更多调查后,我发现我的任务是在运行时让 Zombie,而气流没有得到心跳。我正在通过任务执行者运行气流 dags。我已经在airflow.cfg 中进行了一些更改,并将zombie_task_timeout 从默认值更改为15 分钟。
-
检查 Airflow 日志、调度器、worker 和任务的所有日志。不完全是同一个问题,但有时 Airflow UI 会丢失后端引用,即使后台作业正在运行,它也会重新尝试作业,bcz UI 数据库未更新为正确的状态。