使用 Apache Spark 的 pem/证书访问 ADLS Gen2

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

我有一个 Azure SPN,它允许我使用证书 (.pem) 文件从 ADLS Gen2 读取数据。当我使用Azure SDK时,我可以轻松创建以下对象

from azure.identity import CertificateCredential

azure_credential = CertificateCredential(
                tenant_id=tenant_id,
                client_id=client_id,
                certificate_data=client_certificate_bytes
            )

然后用它来访问ADLS Gen2

DataLakeServiceClient(
        account_url=ACCOUNT_URL,
        credential=azure_credential,
    ).get_file_system_client(blob_container_name)

我需要使用 Apache Spark 中的相同 SPN,但我找不到实现此目的的方法。根据 ABFS 文档中编写的身份验证方法,这似乎不可能(https://hadoop.apache.org/docs/stable/hadoop-azure/abfs.html#Authentication)。我的目标是设置证书,就像我以前在 Spark conf 中设置客户端机密一样,如下所示。

spark_session.conf.set("fs.adl.oauth2.access.token.provider.type", "ClientCredential")
spark_session.conf.set("fs.adl.oauth2.client.id", client_id)
spark_session.conf.set("fs.adl.oauth2.credential", client_secret)
spark_session.conf.set("fs.adl.oauth2.refresh.url", f"https://login.microsoftonline.com/{tenant_id}/oauth2/token")

任何帮助将不胜感激。

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

连接到 Databricks 中的 ADLS Gen2:配置选项

根据官方Databricks文档,有多种方法可以连接到Azure Data Lake Storage (ADLS) Gen2。可用的方法包括:

  1. 带有 Azure 服务主体的 OAuth 2.0
  2. 共享访问签名 (SAS)
  3. 账户密钥

需要注意的是,目前不支持直接在 Spark 配置中配置证书 (.pem),类似于管理机密的方式。

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