從物件儲存體安裝程式庫

本文將逐步引導您完成從 Azure Databricks 上的雲端物件記憶體安裝連結庫所需的步驟。

注意

本文將雲端物件記憶體視為一般概念,並假設您使用 URI 直接與儲存在物件記憶體中的數據互動。 Databricks 建議使用 Unity 目錄磁碟區來設定雲端物件記憶體中檔案的存取權。 請參閱 建立和使用磁碟區

您可以將自定義 JAR 和 Python Whl 連結庫儲存在雲端物件記憶體中,而不是將它們儲存在 DBFS 根目錄中。 如需完整的連結庫相容性詳細數據,請參閱 叢集範圍連結庫

重要

使用 Databricks Runtime 14.3 LTS 和以下版本時,可以從 DBFS 安裝連結庫。 不過,任何工作區使用者都可以修改儲存在 DBFS 中的連結庫檔案。 若要改善 Azure Databricks 工作區中連結庫的安全性,在 Databricks Runtime 15.0 和更新版本中預設會淘汰和停用 DBFS 根目錄中的連結庫檔案。 請參閱 在 DBFS 根目錄中儲存連結庫已被取代,並預設為停用。

相反地,Databricks 建議 將所有連結庫,包括 Python 連結庫、JAR 檔案和 Spark 連接器上傳至工作區檔案或 Unity 目錄磁碟區,或使用連結庫套件存放庫。 如果您的工作負載不支援這些模式,您也可以使用儲存在雲端物件記憶體中的連結庫。

將連結庫載入物件記憶體

您可以使用載入其他檔案的方式,將連結庫載入物件記憶體。 您必須在雲端提供者中擁有適當的許可權,才能建立新的物件記憶體容器,或將檔案載入雲端物件記憶體。

將唯讀許可權授與物件記憶體

Databricks 建議使用唯讀許可權設定與連結庫安裝相關的所有許可權。

Azure Databricks 可讓您將安全性許可權指派給控制雲端物件記憶體中數據存取權的個別叢集。 您可以展開這些原則,以新增包含連結庫之雲端物件記憶體的唯讀存取權。

注意

在 Databricks Runtime 12.2 LTS 和以下版本中,您無法在使用具有共用存取模式的叢集時載入 JAR 連結庫。 在 Databricks Runtime 13.3 LTS 和更新版本中,您必須將 JAR 連結庫新增至 Unity 目錄允許清單。 請參閱 共享計算上的 Allowlist 連結庫和 init 腳本。

Databricks 建議使用 Microsoft Entra ID 服務主體來管理 Azure Data Lake 儲存體 Gen2 中所儲存連結庫的存取權。 使用下列連結的檔案來完成此設定:

  1. 在所需的 Blob 上建立具有讀取和列出許可權的服務主體。 請參閱 使用服務主體存取記憶體和 Microsoft Entra ID(Azure Active Directory)

  2. 使用秘密儲存您的認證。 請參閱 秘密

  3. 在建立叢集時設定 Spark 組態和環境變數中的屬性,如下列範例所示:

    Spark 組態:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    環境變數:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (選擇性)使用 azcopyAzure CLI 重構 init 腳本。

    您可以在 init 腳本內的叢集設定期間參考環境變數,以傳遞儲存為驗證秘密的認證。

將連結庫安裝到叢集

若要將儲存在雲端物件記憶體中的連結庫安裝到叢集,請完成下列步驟:

  1. 從叢集 UI 中的清單中選取叢集。
  2. 選取 [連結 庫] 索引標籤
  3. 選取 [ 檔案路徑/ADLS ] 選項。
  4. 提供連結庫物件的完整 URI 路徑(例如 , abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl
  5. 按一下 [安裝]

您也可以使用 REST APICLI 來安裝連結庫。

將連結庫安裝至筆記本

您可以使用 %pip 來安裝儲存在物件記憶體中的自定義 Python 轉輪檔案,範圍限定於筆記本隔離的 SparkSession。 若要使用此方法,您必須將連結庫儲存在可公開讀取的物件記憶體中,或使用預先簽署的 URL。

請參閱 筆記本範圍的 Python 連結庫

注意

JAR 連結庫無法安裝在筆記本中。 您必須在叢集層級安裝 JAR 連結庫。