繁体   English   中英

无法使用 Azure Databricks 访问已安装的 Azure 数据湖存储

[英]Unable to access a mounted Azure Data Lake storage using Azure Databricks

我在玩 Azure Databricks。 使用 Microsoft Learn 网站上指定的文档,我设法将 BLOB 存储 (ADLS Gen2) 安装到我的 Databricks。

但是,当我尝试列出已安装存储的内容时,出现以下错误:

ExecutionError: An error occurred while calling z:com.databricks.backend.daemon.dbutils.FSUtils.ls.
: GET https://xxxxxxxxxxxxx.dfs.core.windows.net/xxxxxxx?resource=filesystem&maxResults=5000&timeout=90&recursive=false
StatusCode=403
StatusDescription=This request is not authorized to perform this operation using this permission.
ErrorCode=AuthorizationPermissionMismatch

我检查了权限,并且我的 ServicePrincipal 被分配了角色“STORAGE BLOB DATA CONTRIBUTOR”,它允许对我的存储容器进行 R/W 访问。

任何人都知道我缺少哪个部分来使其正常工作? 帮助将不胜感激。

刚刚找到了解决我自己问题的方法。

根本原因是没有在 Azure 存储容器本身上设置权限(尽管在 Azure 门户中,一切看起来都不错)。

我做了什么来解决这个问题:在本地计算机上下载并安装 Azure Storage Explorer

  1. 在本地计算机上下载并安装 Azure 存储资源管理器,使用以下 url: https://azure.microsoft.com/en-us/features
  2. 打开 Azure 门户,启动 Azure 云 Shell。
  3. 使用以下命令检索您的应用程序 ID(服务主体)的 Object ID。 不幸的是,在撰写本文时,您无法直接从门户中检索它。 命令: az ad sp show --id应用程序 ID
  4. 从结果集中复制显示的 Object ID。
  5. 右键单击 Azure 存储资源管理器中的存储容器,选择“管理访问...”
  6. 粘贴您的 Object ID,并分配适当的权限。
  7. 保存并重试 Databricks 笔记本中的代码。

这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM