使用Azure Data Factory通用集群访问ADLS挂载位置失败
核查集群身份配置
作业集群由ADF托管标识驱动,但通用集群默认使用Databricks自身服务主体或你指定的其他标识。确认通用集群所用标识是否拥有ADLS存储账户的Storage Blob Data Contributor(或对应所需权限),以及目标容器/路径的访问权限。可在通用集群笔记本中尝试直接访问ADLS原生路径(如abfss://container@storageaccount.dfs.core.windows.net/path),验证标识本身的访问能力,排除挂载逻辑干扰。确认挂载命令的执行状态
作业集群的挂载可能由ADF触发时自动执行,通用集群若未执行对应挂载命令或挂载身份与集群运行身份不匹配,会导致访问失败。需确保通用集群已用自身运行身份重新执行挂载脚本(如基于服务主体的dbutils.fs.mount(...)命令,核对client-id、tenant-id、secret等参数与集群标识一致)。注意:挂载为集群级操作,每个集群需独立执行(或通过集群初始化脚本自动挂载),作业集群的临时挂载不会同步到通用集群。检查集群初始化脚本与环境变量
作业集群可能配置了ADF传入的初始化脚本或环境变量,其中包含挂载所需的身份认证信息(如密钥、标识参数),而通用集群可能遗漏这些配置。对比作业集群与通用集群的集群初始化脚本设置,检查是否有身份相关脚本未同步;同时核查环境变量,确认是否存在ADF注入的AZURE_CLIENT_ID等身份变量是通用集群缺失的。验证网络与防火墙规则
作业集群可能与ADLS处于同一VNet,或ADLS防火墙允许作业集群的出站IP访问,但通用集群的IP不在允许列表内。检查ADLS存储账户的防火墙设置,确认通用集群的公共IP(或VNet子网)已被授权;若使用VNet注入,需确认通用集群与ADLS在同一VNet或已配置对等连接。排查挂载点的DBFS ACL权限
即使标识能访问ADLS,DBFS挂载点可能设置了ACL限制特定用户/组访问。可在通用集群中执行%sh ls -l /dbfs/mnt/your_mount_point查看文件系统层面权限,或用dbutils.fs.getStatus("dbfs:/mnt/your_mount_point")检查DBFS权限配置,确认当前身份具备读写权限。
内容的提问来源于stack exchange,提问作者Navneet Goyal

