【问题标题】:Unable to access a mounted Azure Data Lake storage using Azure Databricks无法使用 Azure Databricks 访问已装载的 Azure Data Lake 存储
【发布时间】:2020-02-08 23:11:58
【问题描述】:

我正在使用 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-data-lake azure-databricks access-rights


    【解决方案1】:

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

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

    我做了什么来解决这个问题: 在本地计算机上下载并安装 Azure 存储资源管理器

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

    这对我有用。

    【讨论】:

    • 这很有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 2020-08-21
    • 1970-01-01
    相关资源
    最近更新 更多