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

Azure Databricks凭据传递作业配置及运行失败(ADLS Gen2 Token缺失)求助

解决ADLS Gen2凭据传递作业运行时的AzureCredentialNotFoundException错误

问题场景

停止使用存储挂载,改用凭据传递提升安全性并降低成本;读取Avro转Parquet的Notebook手动运行正常,但以服务主体/个人账号作为作业运行时失败,报错:

Py4JJavaError: An error occurred while calling o498.load.
: com.databricks.backend.daemon.data.client.adl.AzureCredentialNotFoundException: Could not find ADLS Gen2 Token

服务主体已配置Blob Contributor权限,作业集群、现有高并发集群均出现该错误。

排查与解决步骤

  • 检查集群凭据传递配置
    确保目标集群(作业集群/高并发集群)已启用凭据传递:进入集群配置的「高级选项」→「凭据传递」,勾选「启用凭据传递」;若使用服务主体运行作业,需在「允许的服务主体」列表中添加该服务主体;高并发集群需确认初始化脚本未覆盖凭据传递相关配置。

  • 验证服务主体权限有效性
    Blob Contributor权限需直接作用于目标存储账户、容器或具体路径,避免仅配置资源组级权限(可能存在继承失效问题);优先使用Storage Blob Data Contributor角色(ADLS Gen2数据平面操作更依赖该角色)。

  • 确认路径格式正确性
    必须使用ADLS Gen2的ABFS路径格式:abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<file-path>,禁止使用挂载路径或旧版ADLS路径;仔细核对容器名、存储账户名及后缀拼写。

  • 检查作业运行身份配置

    • 服务主体运行:作业配置的「运行身份」需选择目标服务主体,且该服务主体已在Azure AD完成应用注册并添加至Databricks工作区。
    • 个人账号运行:确认个人账号对目标存储账户拥有对应数据权限,作业运行身份设置为个人用户(而非集群默认服务主体)。
  • 查看详细日志定位问题
    在作业运行日志中查看完整错误堆栈,或在集群「事件日志」中搜索「credential」相关条目,获取凭据获取过程中的具体失败原因。

  • 测试最小化场景
    创建仅包含ADLS Gen2文件读取逻辑的极简Notebook(如df = spark.read.format("avro").load("abfss://<your-path>")),用相同作业配置运行,排除Notebook其他代码的干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:26:53