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

在Databricks上使用Airflow时DAG持续处于Running状态的问题

Airflow触发Databricks任务持续处于Running状态的排查方案

问题描述

我正按照Databricks官方指南配置Airflow与Databricks集成,使用的Python代码如下:

from airflow import DAG
from airflow.providers.databricks.operators.databricks import DatabricksRunNowOperator
from airflow.utils.dates import days_ago

default_args = {
  'owner': 'airflow'
}

with DAG('databricks_dag',
  start_date = days_ago(2),
  schedule_interval = None,
  default_args = default_args
  ) as dag:

  opr_run_now = DatabricksRunNowOperator(
    task_id = 'run_now',
    databricks_conn_id = 'databricks_default',
    job_id = 123 # 这不是我的实际Job ID
  )

通过Airflow UI触发该DAG后,它一直处于Running状态。我已配置好databricks_conn_id并使用PAT令牌,Webserver和Scheduler均正常运行,示例DAG可成功执行。相关状态截图:

Airflow任务Running状态截图

排查及解决步骤

  • 检查Databricks任务实际状态
    登录Databricks控制台,找到对应Job ID的运行记录,确认任务是真的在执行,还是已经结束但Airflow未同步状态。若Databricks任务已完成/失败,说明Airflow的状态回调或轮询存在问题。

  • 调整任务状态检测参数
    DatabricksRunNowOperator默认通过轮询获取任务状态,可修改以下参数优化:

    • polling_interval_seconds:调整轮询间隔(默认30秒),针对长耗时任务可适当调大
    • timeout_seconds:设置任务超时阈值,超过后自动标记失败
      修改示例:
    opr_run_now = DatabricksRunNowOperator(
      task_id = 'run_now',
      databricks_conn_id = 'databricks_default',
      job_id = 123,
      polling_interval_seconds=60,
      timeout_seconds=3600
    )
    
  • 验证PAT令牌权限
    确保用于连接的PAT令牌拥有jobs-run-manage权限,以及任务关联集群的访问权限。可在Databricks的用户设置中查看令牌的权限范围。

  • 查看Airflow任务日志
    在Airflow UI进入该任务的日志页面,检查是否存在API调用失败、权限报错、网络超时等信息。常见问题包括连接配置中的Databricks工作区URL错误、令牌过期等。

  • 测试网络连通性
    在Airflow部署服务器上执行curl命令,验证能否正常访问Databricks API:

    curl -H "Authorization: Bearer <你的PAT令牌>" https://<你的Databricks工作区URL>/api/2.0/jobs/get?job_id=123
    

    若返回正常的Job信息,说明网络和权限无问题;若报错,排查网络防火墙策略或权限配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:50:24