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 Was sind Unity Catalog-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.1 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:
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.
Speichern Sie Ihre Anmeldeinformationen mithilfe von Geheimnissen. Siehe "Geheime Schlüssel verwalten".
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>}}
(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:
- Wählen Sie in der Liste auf der Cluster-Benutzeroberfläche einen Cluster aus.
- Wählen Sie die Registerkarte Bibliotheken aus.
- Wählen Sie die Option Dateipfad/ADLS aus.
- 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
). - 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.