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

Airflow DAG显示多个所有者的原因及解决建议咨询

问题排查与解决建议

可能的原因

  • 重复设置owner参数:你可能在default_args中指定了owner,同时又在DAG()实例化时单独传递了owner='airflow'参数。部分Airflow版本会将这两个值合并为列表,导致显示两个所有者。
  • 误将owner设为列表类型:代码中可能不小心把owner写成了列表格式,比如'owner': ['Myself', 'airflow'],而非字符串'Myself'。
  • 全局配置继承问题:Airflow全局配置airflow.cfg的[core]模块中,default_args默认包含owner: airflow。如果你的DAG代码没有正确覆盖全局默认值,而是错误地合并了全局配置与自定义配置,就会出现双所有者。
  • 旧版本Airflow的bug:Airflow 1.x的某些旧版本存在owner字段合并的逻辑bug,会自动将全局默认owner与自定义owner合并为列表。

解决步骤

  1. 检查DAG代码

    • 确保只在一个地方定义owner:要么在default_args中设置,要么在DAG()实例化参数中设置,不要重复定义。示例:
      # 正确写法:只在default_args中设置
      default_args = {
          'owner': 'Myself',
          # 其他参数...
      }
      dag = DAG(
          'my_dag_id',
          default_args=default_args,
          schedule_interval='@daily'
      )
      
    • 确认owner的值是字符串类型,而非列表。
  2. 验证全局配置覆盖

    • 如果你的代码继承了全局default_args,确保显式覆盖owner字段:
      from airflow.utils.dates import days_ago
      # 不要直接修改全局default_args,而是创建新字典覆盖
      default_args = {
          'owner': 'Myself',
          'start_date': days_ago(1),
          # 其他默认参数
      }
      
  3. 查看DAG序列化数据

    • 在Airflow UI中进入该DAG的详情页,找到"JSON"标签,查看owner字段的实际值。如果是列表类型,说明代码中存在上述重复定义或类型错误。
  4. 升级Airflow版本

    • 如果你使用的是Airflow 1.x版本,建议升级到2.x的稳定版本,这类字段合并的bug在新版本中已被修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 16:57:19