故障排除¶
模糊的任务失败¶
任务状态被外部更改¶
任务的状态可能被执行器以外的组件更改,这可能会在查看任务实例或调度器日志时引起一些混淆。
以下是一些可能导致任务状态被执行器以外的组件更改的示例场景
如果任务的 DAG 在 worker 上解析失败,调度器可能会将该任务标记为失败。如果确认是这种情况,请考虑增加 core.dagbag_import_timeout 和 core.dag_file_processor_timeout。
如果任务排队时间超过 scheduler.task_queued_timeout,调度器将把该任务标记为失败。
如果任务变成 僵尸,它将被调度器标记为失败。
用户在 Airflow UI 中将任务标记为成功或失败。
外部脚本或进程使用 Airflow REST API 更改了任务的状态。
LocalTaskJob 被杀死¶
有时,Airflow 或某些相邻系统会杀死任务实例的 LocalTaskJob
,导致任务实例失败。
以下是一些可能导致此类事件的示例
DAG 运行超时,由 DAG 定义中的
dagrun_timeout
指定。Airflow worker 内存不足 - 通常,内存不足的 Airflow worker 会收到 SIGKILL 信号,并被调度器标记为僵尸和失败。但是,在某些情况下,Airflow 会在此之前杀死任务。