如何在DBFS上挂载Azure数据湖存储?

问题描述 投票:-1回答:1

我需要使用 Azure 服务主客户端凭证在 Azure Databricks 文件系统上挂载 Azure Data Lake Store Gen1 数据文件夹。请在相同的问题上提供帮助

azure azure-data-lake azure-databricks
1个回答
0
投票

访问 Azure Data Lake Storage Gen1 有三种方式。

  1. 传递你的Azure活动目录凭证,也就是凭证直通。
  2. 使用服务委托人和 OAuth 2.0 将 Azure Data Lake Storage Gen1 文件系统挂载到 DBFS。
  3. 直接使用服务委托人。

1. 传递您的 Azure Active Directory 凭证,也称为凭证直通。

您可以使用与您用于登录 Azure Databricks 的相同 Azure Active Directory (Azure AD) 身份,从 Azure Databricks 集群自动验证到 Azure Data Lake Storage Gen1。当您为 Azure AD 凭证直通启用群集时,您在该群集上运行的命令将能够在 Azure Data Lake Storage Gen1 中读取和写入数据,而不需要您为访问存储配置服务主凭证。

为标准群集启用 Azure Data Lake 存储的凭证直通功能

enter image description here

有关完整的设置和使用说明,请参见 使用 Azure Active Directory 凭证通过方式安全访问 Azure Data Lake 存储器。.

2. 使用服务委托人和 OAuth 2.0 将 Azure Data Lake Storage Gen1 文件系统挂载到 DBFS。

步骤1.创建并授予服务委托人权限。 创建并授予服务委托人权限

如果您选择的访问方法需要具有足够权限的服务委托人,而您没有,请按照以下步骤进行操作。

  1. 创建可以访问资源的 Azure AD 应用程序和服务委托人。请注意以下属性。

    application-id: 唯一标识客户端应用程序的 ID。

    directory-id: 唯一标识 Azure AD 实例的 ID。

    service-credential: 应用程序用来证明其身份的字符串。

  2. 注册服务委托人,在 Azure Data Lake Storage Gen1 帐户上授予正确的角色分配(如 Contributor)。

Step2.将Azure Data Lake Storage Gen1账户挂载到Azure Data Lake Storage Gen1账户上,并授予正确的角色分配(如贡献者)。 使用服务委托人和OAuth 2.0安装Azure Data Lake Storage Gen1资源。

Python代码。

configs = {"<prefix>.oauth2.access.token.provider.type": "ClientCredential",
           "<prefix>.oauth2.client.id": "<application-id>",
           "<prefix>.oauth2.credential": dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential>"),
           "<prefix>.oauth2.refresh.url": "https://login.microsoftonline.com/<directory-id>/oauth2/token"}

# Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
  source = "adl://<storage-resource>.azuredatalakestore.net/<directory-name>",
  mount_point = "/mnt/<mount-name>",
  extra_configs = configs)

enter image description here

3. 使用服务委托人和OAuth 2.0直接使用Spark API访问。

可以使用服务委托人使用OAuth 2.0直接访问Azure Data Lake Storage Gen1存储账户(而不是使用DBFS挂载)。

使用 DataFrame API 进行访问。

要从 Azure Data Lake Storage Gen1 帐户中读取数据,您可以在笔记本中使用以下片段配置 Spark 使用服务凭证。

spark.conf.set("<prefix>.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("<prefix>.oauth2.client.id", "<application-id>")
spark.conf.set("<prefix>.oauth2.credential","<key-name-for-service-credential>"))
spark.conf.set("<prefix>.oauth2.refresh.url", "https://login.microsoftonline.com/<directory-id>/oauth2/token")

enter image description here

参考: Azure Databricks - Azure Data Lake Storage Gen1

© www.soinside.com 2019 - 2024. All rights reserved.