Freigeben über


Installieren von Bibliotheken aus dem Objektspeicher

Dieser Artikel führt Sie durch die Schritte, die für die Installation von Bibliotheken aus dem Cloud-Objektspeicher auf Azure Databricks erforderlich sind.

Hinweis

Dieser Artikel bezieht sich auf den Cloud-Objektspeicher als allgemeines Konzept und geht davon aus, dass Sie direkt mit den im Objektspeicher gespeicherten Daten über URIs interagieren. Databricks empfiehlt die Verwendung von Unity Catalog-Volumes, um den Zugriff auf Dateien im Cloud-Objektspeicher zu konfigurieren. Weitere Informationen finden Sie unter Erstellen von und Arbeiten mit Volumes.

Sie können benutzerdefinierte JAR- und Python-.whl-Bibliotheken im Cloud-Objektspeicher speichern, anstatt sie im DBFS-Stammverzeichnis abzulegen. Ausführliche Informationen zur Kompatibilität der Bibliothek finden Sie unter Cluster-bezogene Bibliotheken.

Wichtig

Bei Verwendung von Databricks Runtime 14.3 LTS und niedriger können Bibliotheken über DBFS installiert werden. Arbeitsbereichsbenutzer und -benutzerinnen können jedoch Bibliotheksdateien ändern, die in DBFS gespeichert sind. Um die Sicherheit von Bibliotheken in einem Azure Databricks-Arbeitsbereich zu verbessern, wurde das Speichern von Bibliotheksdateien im DBFS-Stamm eingestellt und ist in Databricks Runtime 15.0 und höher standardmäßig deaktiviert. Weitere Informationen finden Sie unter Das Speichern von Bibliotheken im DBFS-Stamm ist veraltet und standardmäßig deaktiviert.

Stattdessen empfiehlt Databricks, alle Bibliotheken (einschließlich Python-Bibliotheken, JAR-Dateien und Spark-Connectors) in Arbeitsbereichsdateien oder auf Unity Catalog-Volumes hochzuladen oder Bibliothekspaketrepositorys zu verwenden. Wenn Ihre Workload diese Muster nicht unterstützt, können Sie auch Bibliotheken verwenden, die im Cloudobjektspeicher gespeichert sind.

Laden von Bibliotheken in den Objektspeicher

Sie können Bibliotheken auf die gleiche Weise in den Objektspeicher laden, wie Sie andere Dateien laden. Sie müssen bei Ihrem Cloud-Anbieter über die entsprechenden Berechtigungen verfügen, um neue Objektspeicher-Container zu erstellen oder Dateien in den Cloud-Objektspeicher zu laden.

Gewähren von Nur-Lese-Berechtigungen für Objektspeicher

Databricks empfiehlt, alle Privilegien im Zusammenhang mit der Bibliotheksinstallation mit Nur-Lese-Zugriffsrechten zu konfigurieren.

Mit Azure Databricks können Sie einzelnen Clustern Sicherheitsberechtigungen zuweisen, die den Zugriff auf Daten im Cloud-Objektspeicher regeln. Diese Richtlinien können erweitert werden, um den Nur-Lese-Zugriff auf Cloud-Objektspeicher, die Bibliotheken enthalten, hinzuzufügen.

Hinweis

In Databricks Runtime 12.2 LTS und darunter können Sie keine JAR-Bibliotheken laden, wenn Sie Cluster mit Zugriffsmodus „Freigegeben“ verwenden. In Databricks Runtime 13.3 LTS und höher müssen Sie JAR-Bibliotheken in die Positivliste von Unity Catalog aufnehmen. Weitere Informationen finden Sie unter Positivliste von Bibliotheken und Initialisierungsskripts auf freigegebenem Compute.

Databricks empfiehlt die Verwendung von Microsoft Entra ID-Dienstprinzipalen für die Verwaltung des Zugriffs auf die in Azure Data Lake Storage Gen2 gespeicherten Bibliotheken. Verwenden Sie die nachfolgend verlinkte Dokumentation, um dieses Setup abzuschließen:

  1. Erstellen Sie ein Dienstprinzipal mit Berechtigungen zum Lesen und Auflisten der gewünschten Blobs. Weitere Informationen finden Sie unter Zugriff auf Speicher mit Microsoft Entra ID (früher Azure Active Directory) und einem Dienstprinzipal.

  2. Speichern Sie Ihre Anmeldeinformationen mithilfe von Geheimnissen. Weitere Informationen hierzu finden Sie unter Geheimnisse.

  3. Legen Sie die Eigenschaften in der Spark-Konfiguration und die Umgebungsvariablen beim Erstellen eines Clusters fest, wie im folgenden Beispiel gezeigt:

    Spark-Konfiguration:

    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
    

    Umgebungsvariablen:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Optional) Gestalten Sie die Initialisierungsskripts mithilfe von azcopy oder der Azure CLI um.

    Sie können auf die während der Clusterkonfiguration festgelegten Umgebungsvariablen in Ihren Initialisierungsskripts verweisen, um als Geheimnis gespeicherte Anmeldeinformationen zur Validierung zu übergeben.

Installieren von Bibliotheken in Clustern

Um eine im Cloud-Objektspeicher gespeicherte Bibliothek in einem Cluster zu installieren, führen Sie die folgenden Schritte aus:

  1. Wählen Sie in der Liste auf der Cluster-Benutzeroberfläche einen Cluster aus.
  2. Wählen Sie die Registerkarte Bibliotheken aus.
  3. Wählen Sie die Option Dateipfad/ADLS aus.
  4. Geben Sie den vollständigen URI-Pfad zum Bibliotheksobjekt an (z. B. abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl).
  5. Klicke auf Installieren.

Sie können Bibliotheken auch mithilfe der REST-API oder der CLI installieren.

Installieren von Bibliotheken in Notebooks

Sie können %pip verwenden, um benutzerdefinierte Python-Wheel-Dateien zu installieren, die in einem Objektspeicher gespeichert sind, der auf eine von einem Notebook isolierte SparkSession beschränkt ist. Um diese Methode verwenden zu können, müssen Sie Bibliotheken entweder im öffentlich lesbaren Objektspeicher speichern oder eine vorsignierte URL verwenden.

Informationen finden Sie unter Python-Bibliotheken im Notebook-Bereich.

Hinweis

JAR-Bibliotheken können nicht im Notebook installiert werden. Sie müssen JAR-Bibliotheken auf Clusterebene installieren.