分享方式:


從物件儲存體安裝程式庫

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

注意

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

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

重要

使用 Databricks Runtime 14.3 LTS 及更舊版本時,可從 DBFS 安裝程式庫。 不過,任何工作區使用者都可以修改儲存在 DBFS 的程式庫檔案。 若要提高 Azure Databricks 工作區程式庫的安全性,在 Databricks Runtime 15.1 和更新版本預設會取代及停用 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 Storage 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 連結庫。