【问题标题】:unable to create mount point in databricks for adls gen 2无法在数据块中为 adls gen 2 创建挂载点
【发布时间】:2021-03-01 18:06:12
【问题描述】:

我正在尝试使用 databricks 中的密钥库创建指向 ADLS Gen2 的挂载点,但是由于出现了一些错误,我无法这样做。 我有贡献者访问权限,我尝试使用存储 Blob 数据贡献者和贡献者对 SPN 的访问权限,但我仍然无法创建挂载点。

请大家帮忙

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":"abcdefgh",
       "fs.azure.account.oauth2.client.secret":dbutils.secrets.get(scope="myscope",key="mykey"),
       "fs.azure.account.oauth2.client.endpoint":"https://login.microsoftonline.com/tenantid/oauth2/token",
       "fs.azure.createRemoteFileSystemDuringInitialization": "true"}

dbutils.fs.mount(
        source= "abfss://cont1@storageaccount.dfs.core.windows.net/",
        mount_point="/mnt/cont1",
        extra_configs=configs)

我得到的错误是 调用 o280.mount 时出错。 : 头https://storageaccount.dfs.core.windows.net/cont1?resource=filesystem&timeout=90 状态码=403 StatusDescription=此请求无权执行此操作。

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql databricks azure-databricks


    【解决方案1】:

    执行将应用程序分配给角色中的步骤时,请确保您的用户帐户具有分配给它的存储 Blob 数据参与者角色。

    Repro:我已向服务主体提供所有者权限并尝试运行“dbutils.fs.ls("mnt/azure/")”,返回与上述相同的错误消息。

    解决方案:现在将Storage Blob Data Contributor角色分配给服务主体。

    最后,在将存储 Blob 数据参与者角色分配给服务主体后,能够获得没有任何错误消息的输出。

    更多详情,请参阅“Tutorial: Azure Data Lake Storage Gen2, Azure Databricks & Spark”。

    【讨论】:

    • 如果对你有用,可以accept it as an answer吗?它可能会帮助更多有类似问题的人。
    • 我也这样做了。我向 SPN 提供了 Storage Blob Data Contributor,但我仍然遇到同样的错误。这发生在我与我们共享的客户 ID 中。但是,当执行相同的代码时,我的个人 azure 帐户并没有得到相同的结果。
    猜你喜欢
    • 2020-02-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    相关资源
    最近更新 更多