You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow界面DAG持续失败,无错误日志显示求助

Airflow DAG运行失败且无日志的排查与修复

代码中的明显问题

你的DAG代码存在两处拼写/配置错误,可能直接导致任务异常:

  1. 重试参数拼写错误:default_args中的'retried' : 1应为'retries',该参数控制任务失败后的重试次数,拼写错误会使配置不生效。
  2. 动态start_date问题:使用pendulum.today('UTC').add(days= -2)会让每次DAG解析时start_date都动态变化,Airflow会将其识别为新DAG版本,引发调度逻辑混乱。建议改为固定的UTC日期,比如pendulum.datetime(2024, 5, 20, tz='UTC')。

修正后的核心代码片段:

default_args = {
    'owner' : 'curtis',
    'start_date' : pendulum.datetime(2024, 5, 20, tz='UTC'),  # 改为固定日期
    'depends_on_past' : False,
    'email' :  [''], 
    'email_on_failure' : True, 
    'email_on_retry' : True, 
    'retries' : 1,  # 修正参数名
    'retry_delay' : timedelta(minutes = 5)  
}

日志缺失的排查步骤

如果修正代码后仍无日志输出,按以下步骤排查:

  • 检查日志目录权限:Airflow默认日志目录为$AIRFLOW_HOME/logs,确保运行Airflow的用户对该目录有读写权限:
    # 查看目录权限
    ls -ld $AIRFLOW_HOME/logs
    # 修复权限(假设运行用户为airflow)
    sudo chown -R airflow:airflow $AIRFLOW_HOME/logs
    
  • 验证Executor状态:
    • 若使用默认SequentialExecutor,确认Scheduler进程正常运行,未被意外终止;
    • 若使用CeleryExecutor,检查Celery Worker是否启动,且与Broker(Redis/RabbitMQ)连接正常。
  • 查看核心服务日志:检查Scheduler和Webserver的日志,路径通常为$AIRFLOW_HOME/logs/scheduler和$AIRFLOW_HOME/logs/webserver,这些日志可能包含任务调度失败的细节。
  • 确认任务实例状态:在Airflow UI中查看任务实例的具体状态,若任务一直处于queued状态,可能是Executor资源不足或调度器未正确触发任务执行。

其他建议

  • 测试时可将DAG的schedule改为@once,避免调度周期影响测试;
  • 手动触发任务时,在UI中选择“Clear”后再重新触发,确保任务实例状态干净。

内容的提问来源于stack exchange,提问作者Curtis Wiser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:28:11