无法在Databricks中挂载启用软删除的Azure Blob Storage文件夹
排查启用软删除的Azure存储账户dlsbdpdwhdev无法挂载到Databricks的配置项
问题背景
两个均启用Blob软删除的Azure存储账户中,dlsbdpdwhtest可正常挂载到Databricks,但dlsbdpdwhdev挂载失败,需在保留软删除设置的前提下排查配置问题。
用户挂载代码
configs = {"fs.azure.account.auth.type": "OAuth", "fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider", "fs.azure.account.oauth2.client.id": bdp_datalake_access_application_id, "fs.azure.account.oauth2.client.secret": bdp_datalake_access_secret_value , "fs.azure.account.oauth2.client.endpoint": bdp_datalake_endpoint } mount_source = f"abfss://bdp-dwh@dlsbdpdwhdev.dfs.core.windows.net/" mount_folder = "/mnt/bdp-dwh" print(mount_source) dbutils.fs.mount(source = mount_source,mount_point = mount_folder,extra_configs = configs)
需检查的配置项
Azure AD应用权限配置
- 验证
bdp_datalake_access_application_id对应的应用注册,是否在dlsbdpdwhdev存储账户的IAM中分配了存储Blob数据贡献者(或更高权限),且权限已生效(IAM权限可能需要数分钟同步) - 对比
dlsbdpdwhtest的IAM权限配置,确认两者权限规则一致
- 验证
存储账户网络访问控制
- 检查
dlsbdpdwhdev的防火墙/虚拟网络设置:若设置为“允许选定的网络”,需添加Databricks工作区的出站IP,或勾选“允许受信任的Microsoft服务访问此存储账户” - 对比
dlsbdpdwhtest的网络配置,排查是否存在差异化的访问限制
- 检查
容器与路径有效性
- 确认
mount_source中的容器bdp-dwh在dlsbdpdwhdev中存在,且名称拼写完全匹配(Azure容器名称为小写,区分大小写) - 检查该容器是否被软删除,若已删除需先恢复(软删除容器未恢复前无法访问)
- 确认
应用密钥与端点正确性
- 确认
bdp_datalake_access_secret_value是对应应用注册的有效密钥,未过期 - 验证
bdp_datalake_endpoint格式正确,应为https://login.microsoftonline.com/<租户ID>/oauth2/token,且租户ID与dlsbdpdwhdev所在租户一致
- 确认
Databricks挂载点冲突
- 执行
dbutils.fs.mounts()查看/mnt/bdp-dwh是否已挂载其他路径,若存在需先执行dbutils.fs.unmount("/mnt/bdp-dwh")卸载后重新挂载,或更换挂载点
- 执行
存储账户层级命名空间状态
- 确认
dlsbdpdwhdev已启用层级命名空间(abfss协议要求存储账户为ADLS Gen2,即启用该特性),对比dlsbdpdwhtest的配置确保一致
- 确认
内容的提问来源于stack exchange,提问作者Hien.LV2093
相关产品推荐
相关产品推荐

