Bibliotheken installeren vanuit objectopslag

In dit artikel worden de stappen beschreven die nodig zijn voor het installeren van bibliotheken vanuit cloudobjectopslag in Azure Databricks.

Notitie

Dit artikel verwijst naar cloudobjectopslag als een algemeen concept en gaat ervan uit dat u rechtstreeks communiceert met gegevens die zijn opgeslagen in objectopslag met behulp van URI's. Databricks raadt het gebruik van Unity Catalog-volumes aan om de toegang tot bestanden in cloudobjectopslag te configureren. Zie Maken en werken met volumes.

U kunt aangepaste JAR- en Python Whl-bibliotheken opslaan in cloudobjectopslag in plaats van ze op te slaan in de DBFS-hoofdmap. Zie Clusterbibliotheken voor volledige bibliotheekcompatibiliteitsdetails.

Belangrijk

Bibliotheken kunnen worden geïnstalleerd vanuit DBFS wanneer u Databricks Runtime 14.3 LTS en hieronder gebruikt. Elke werkruimtegebruiker kan echter bibliotheekbestanden wijzigen die zijn opgeslagen in DBFS. Om de beveiliging van bibliotheken in een Azure Databricks-werkruimte te verbeteren, wordt het opslaan van bibliotheekbestanden in de DBFS-hoofdmap afgeschaft en standaard uitgeschakeld in Databricks Runtime 15.0 en hoger. Zie Opslaan van bibliotheken in dbFS-hoofdmap is afgeschaft en standaard uitgeschakeld.

In plaats daarvan raadt Databricks aan om alle bibliotheken, waaronder Python-bibliotheken, JAR-bestanden en Spark-connectors, te uploaden naar werkruimtebestanden of Unity Catalog-volumes, of om opslagplaatsen van bibliotheekpakketten te gebruiken. Als uw workload deze patronen niet ondersteunt, kunt u ook bibliotheken gebruiken die zijn opgeslagen in de opslag van cloudobjecten.

Bibliotheken laden in objectopslag

U kunt bibliotheken laden naar objectopslag op dezelfde manier als u andere bestanden laadt. U moet over de juiste machtigingen in uw cloudprovider beschikken om nieuwe objectopslagcontainers te maken of bestanden in cloudobjectopslag te laden.

Alleen-lezenmachtigingen verlenen voor objectopslag

Databricks raadt u aan alle bevoegdheden met betrekking tot bibliotheekinstallatie met alleen-lezenmachtigingen te configureren.

Met Azure Databricks kunt u beveiligingsmachtigingen toewijzen aan afzonderlijke clusters die toegang tot gegevens in de opslag van cloudobjecten beheren. Deze beleidsregels kunnen worden uitgebreid om alleen-lezentoegang toe te voegen tot cloudobjectopslag die bibliotheken bevat.

Notitie

In Databricks Runtime 12.2 LTS en lager kunt u geen JAR-bibliotheken laden wanneer u clusters met gedeelde toegangsmodi gebruikt. In Databricks Runtime 13.3 LTS en hoger moet u JAR-bibliotheken toevoegen aan de acceptatielijst voor Unity Catalog. Zie Allowlist-bibliotheken en init-scripts voor gedeelde berekeningen.

Databricks raadt aan om service-principals van Microsoft Entra ID te gebruiken voor het beheren van de toegang tot bibliotheken die zijn opgeslagen in Azure Data Lake Storage Gen2. Gebruik de volgende gekoppelde documentatie om deze installatie te voltooien:

  1. Maak een service-principal met lees- en lijstmachtigingen voor uw gewenste blobs. Zie Access Storage met behulp van een service-principal en Microsoft Entra ID (Azure Active Directory).

  2. Sla uw referenties op met behulp van geheimen. Zie geheimen.

  3. Stel de eigenschappen in de Spark-configuratie en omgevingsvariabelen in tijdens het maken van een cluster, zoals in het volgende voorbeeld:

    Spark-configuratie:

    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
    

    Omgevingsvariabelen:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Optioneel) Init-scripts herstructureren met azcopy of de Azure CLI.

    U kunt verwijzen naar omgevingsvariabelen die zijn ingesteld tijdens de clusterconfiguratie in uw init-scripts om referenties door te geven die zijn opgeslagen als geheimen voor validatie.

Bibliotheken installeren in clusters

Voer de volgende stappen uit om een bibliotheek te installeren die is opgeslagen in cloudobjectopslag naar een cluster:

  1. Selecteer een cluster in de lijst in de gebruikersinterface van clusters.
  2. Selecteer het tabblad Bibliotheken .
  3. Selecteer de optie Bestandspad/ADLS .
  4. Geef het volledige URI-pad op naar het bibliotheekobject (bijvoorbeeld abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl).
  5. Klik op Install.

U kunt ook bibliotheken installeren met behulp van de REST API of CLI.

Bibliotheken installeren op notebooks

U kunt %pip aangepaste Python-wielbestanden installeren die zijn opgeslagen in objectopslag binnen het bereik van een door notebook geïsoleerde SparkSession. Als u deze methode wilt gebruiken, moet u bibliotheken opslaan in openbaar leesbare objectopslag of een vooraf ondertekende URL gebruiken.

Zie Notebook-scoped Python libraries (Notebook-scoped Python-bibliotheken) voor meer informatie.

Notitie

JAR-bibliotheken kunnen niet worden geïnstalleerd in het notebook. U moet JAR-bibliotheken installeren op clusterniveau.