オブジェクト ストレージからライブラリをインストールする

この記事では、クラウド オブジェクト ストレージから Azure Databricks にライブラリをインストールするために必要な手順について説明します。

Note

この記事では、クラウド オブジェクト ストレージを一般的な概念と呼び、URI を使用してオブジェクト ストレージに格納されているデータを直接操作することを前提としています。 Databricks では、Unity Catalog ボリュームを使用して、クラウド オブジェクト ストレージ内のファイルへのアクセスを構成することをお勧めします。 「ボリュームを作成して操作する」を参照してください。

カスタムの JAR ライブラリと Python Whl ライブラリは、DBFS ルートに格納するのではなく、クラウド オブジェクト ストレージに格納できます。 ライブラリの互換性の詳細については、「クラスター スコープ ライブラリ」を参照してください。

重要

Databricks Runtime 14.3 LTS 以下を使用する場合は、DBFS からライブラリをインストールできます。 ただし、ワークスペース ユーザーは、DBFS に格納されているライブラリ ファイルを変更できます。 Azure Databricks ワークスペース内のライブラリのセキュリティを向上させるために、Databricks Runtime 15.1 以降では、ライブラリ ファイルを DBFS ルートに格納することは非推奨となり、既定では無効になっています。 「DBFS ルートにライブラリを格納することは非推奨であり、既定では無効になっている」を参照してください。

Databricks は、代わりにワークスペース ファイルまたは Unity Catalog ボリュームに Python ライブラリ、JAR ファイル、Spark コネクタを含むすべてのライブラリをアップロードするか、ライブラリ パッケージ リポジトリを使用することを推奨しています。 ワークロードでこれらのパターンがサポートされない場合、クラウド オブジェクト ストレージに格納されているライブラリも使用できます。

ライブラリをオブジェクト ストレージに読み込む

ライブラリは、他のファイルを読み込むのと同じ方法でオブジェクト ストレージに読み込むことができます。 新しいオブジェクト ストレージ コンテナーを作成する、またはクラウド オブジェクト ストレージにファイルを読み込むには、クラウド プロバイダーに適切なアクセス許可が必要です。

オブジェクト ストレージに読み取り専用アクセス許可を付与する

Databricks では、ライブラリのインストールに関連するすべての権限を読み取り専用のアクセス許可で構成することをお勧めします。

Azure Databricks では、クラウド オブジェクト ストレージ内のデータへのアクセスを制御する個々のクラスターにセキュリティ アクセス許可を割り当てることができます。 これらのポリシーを展開して、ライブラリを含むクラウド オブジェクト ストレージへの読み取り専用アクセスを追加できます。

Note

Databricks Runtime 12.2 LTS 以降では、共有アクセス モードのクラスターを使用する場合、JAR ライブラリを読み込むことができません。 Databricks Runtime 13.3 LTS 以降では、JAR ライブラリを Unity Catalog 許可リストに追加する必要があります。 「共有コンピューティングの許可リスト ライブラリと 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. (省略可能) azcopy または Azure 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 API または CLI を使用してライブラリをインストールすることもできます。

ライブラリをノートブックにインストールする

%pip を使用して、ノートブックから分離された SparkSession をスコープとするオブジェクト ストレージに格納されているカスタム Python ホイール ファイルをインストールできます。 このメソッドを使用するには、ライブラリをパブリックに読み取り可能なオブジェクト ストレージに格納するか、事前署名された URL を使用する必要があります。

ノートブック スコープの Python ライブラリ」を参照してください。

Note

JAR ライブラリはノートブックにインストールできません。 JAR ライブラリはクラスター レベルでインストールする必要があります。