Installera bibliotek för beräkning

Slutförd

När du kör notebook-filer och jobb på Azure Databricks-beräkning behöver du ofta paket från tredje part eller anpassad kod som inte ingår i standardkörningsmiljön. Genom att installera bibliotekklusternivå ser du till att varje notebook-fil och jobb som använder den beräkningen har åtkomst till samma beroenden, vilket skapar en konsekvent körningsmiljö.

Att förstå hur du installerar bibliotek blir effektivt kritiskt när dina arbetsflöden för datateknik växer i komplexitet. Du behöver veta vilken installationsmetod du ska använda, var du ska lagra biblioteksfiler och hur åtkomstlägen påverkar dina alternativ.

Förstå beräkningsskopade bibliotek

Beräkningsomfångs bibliotek installeras på ett kluster och blir tillgängliga för alla notebooks och jobb som körs på det klustret. Till skillnad från bibliotek med notebook-omfång som endast installeras för en specifik notebook-session bevaras bibliotek med beräkningsomfång mellan klusteromstarter och ger en delad miljö för alla användare.

När du installerar ett bibliotek på klusternivå installerar Azure Databricks automatiskt om det varje gång klustret startar. Det här beteendet säkerställer konsekvens – du behöver inte installera om beroenden manuellt när du har stoppat och startat om ett kluster. Alla notebooks anslutna till klustret kan importera och använda de installerade paketen omgående.

Anmärkning

Om du vill installera bibliotek i ett kluster måste du ha behörigheten KAN HANTERA i klustret. Med den här behörigheten kan du ändra klusterkonfigurationen, inklusive att lägga till och ta bort bibliotek. Utan den här behörigheten kommer du inte att kunna komma åt bibliotekets installationsgränssnitt.

Bibliotek med beräkningsomfattning stöder Python-hjul, Java JAR-filer och R-paket. Du kan installera dem från paketlagringsplatser som PyPI och Maven, eller från filer som lagras i arbetsytefiler, Unity Catalog-volymer eller molnobjektlagring. Vilken installationsmetod du väljer beror på bibliotekstyp, klusteråtkomstläge och organisationens säkerhetskrav.

Bibliotek med beräkningsomfång har dock en viktig begränsning: alla bibliotek som du installerar påverkar varje notebook i klustret. Om olika team behöver motstridiga versioner av samma bibliotek behöver du separata kluster eller installationer med notebook-omfång för att undvika konflikter.

Installera bibliotek från paketlagringsplatser

Paketlagringsplatser är det vanligaste sättet att installera bibliotek. PyPI är värd för Python-paket, Maven är värd för Java- och Scala-bibliotek och CRAN är värdar för R-paket . Dessa lagringsplatser hanterar automatiskt beroendematchning och versionshantering.

Om du vill installera ett bibliotek från PyPI väljer du PyPI som bibliotekskälla och anger paketnamnet. För produktionsarbetsbelastningar anger du en exakt version för att säkerställa reproducerbarhet: pymssql==2.3.9. Utan ett versionsnummer installerar Azure Databricks den senaste tillgängliga versionen, som kan ändras mellan installationer och eventuellt bryta koden.

Skärmbild av dialogrutan Installera bibliotek i Azure Databricks (PyPI).

Maven-bibliotek kräver koordinater i formatet groupId:artifactId:version. Om du till exempel vill installera Microsoft JDBC-drivrutinen för SQL Server-biblioteket använder com.microsoft.sqlserver:mssql-jdbc:13.2.1.jre11du . Du kan söka efter paket direkt i installationsdialogrutan om du inte känner till de exakta koordinaterna. Maven stöder även exkludering av specifika transitiva beroenden som kan vara i konflikt med andra installerade bibliotek.

Skärmbild av dialogrutan Installera bibliotek i Azure Databricks (Maven).

Ange paketnamnet för R-paket från CRAN. Till skillnad från Python- och Java-bibliotek hämtar CRAN-installationer alltid den senaste versionen från den konfigurerade speglingen. Om du vill fästa specifika R-paketversioner måste du lagra paketfilerna i arbetsytefiler eller volymer i stället för att installera från CRAN.

Med kluster som konfigurerats i standardåtkomstläge kräver allowlist Maven-koordinater och JAR-filsökvägar godkännande före installationen. Det här säkerhetsmåttet säkerställer att administratörer granskar och godkänner bibliotek som körs på delade beräkningsresurser.

Anmärkning

Mer information om hur du konfigurerar och hanterar allowlists bibliotek finns i dokumentationen.

Installera bibliotek från filer

Genom att lagra biblioteksfiler i arbetsytefiler eller Unity Catalog-volymer får du exakt kontroll över vilka biblioteksversioner dina kluster använder. Den här metoden fungerar bra när du behöver bibliotek som inte är tillgängliga i offentliga lagringsplatser, anpassade paket som du har skapat internt eller specifika versioner som inte längre är tillgängliga från paketlagringsplatser.

Användning av arbetsytefiler och Unity Catalog-volymer för biblioteksinstallation bibehåller centraliserad hantering istället för att kringgå säkerhetskontroller med ad hoc-installationer som direkta pip3-kommandon eller ohanterade anpassade skript som körs från anteckningsböcker. Unity Catalog-volymer ger förbättrad styrning via Unity Catalogs åtkomstkontrollmodell, vilket säkerställer att alla biblioteksinstallationer spåras med granskningsloggar och skyddas av detaljerade behörigheter.

Arbetsytefiler ger en praktisk plats för bibliotekslagring med en filstorleksgräns på 500 MB. Om du vill installera ett bibliotek från arbetsytefiler laddar du upp hjulet, JAR eller requirements.txt filen via dialogrutan Importera arbetsyta och refererar sedan till det under biblioteksinstallationen med hjälp av en sökväg som /Workspace/Users/you@example.com/libraries/mypackage-1.0.0-py3-none-any.whl.

Skärmbild som visar var du hittar dialogrutan Importera arbetsyta.

Unity Catalog-volymer ger förbättrad säkerhet och styrning för bibliotekslagring. Du styr åtkomsten via Behörigheter för Unity-katalogen så att endast behöriga användare kan läsa eller ändra biblioteksfiler. Ladda upp filer till en volym via Catalog Explorer och installera dem sedan med hjälp av en sökväg som /Volumes/main/engineering/libraries/mypackage-1.0.0-py3-none-any.whl. Den identitet som används för installationen måste ha läsvolymbehörighet på den angivna volymen.

Skärmbild som visar ett bibliotek som laddats upp till en volym i Unity Catalog.

Python -requirements.txt filer fungerar med både arbetsytefiler och volymer i Databricks Runtime 15.0 och senare. Med de här filerna kan du definiera flera paketberoenden i en enda fil, vilket gör det enklare att underhålla konsekventa miljöer mellan kluster. Ladda upp requirements.txt-filen och installera den precis som alla andra bibliotek – Azure Databricks installerar automatiskt alla paket som visas.

För kluster med standardåtkomstläge måste du lägga till biblioteksfilsökvägar till allowlist före installationen. Detta gäller både arbetsytefiler och volymer, vilket säkerställer att administratörer godkänner de bibliotek som används vid delad beräkning.

Använda init-skript för avancerad konfiguration

Init-skript utför shell-kommandon under klusterstarten innan Spark-driver och exekverare startar. Även om Databricks inte rekommenderar att du använder init-skript för biblioteksinstallation – bibliotek med klusteromfattning ger en bättre metod – visar sig init-skript vara användbara för konfiguration på systemnivå som biblioteken inte kan hantera.

Du kan använda init-skript för att installera systempaket med apt-get, konfigurera miljövariabler eller konfigurera övervakningsagenter. Ett init-skript kan till exempel installera en specialiserad databasdrivrutin som kräver systembibliotek och sedan konfigurera anslutningsparametrar via miljövariabler. Skriptet körs varje gång klustret startas, vilket säkerställer att konfigurationen bevaras mellan omstarter.

Lagra init-skript i Unity Catalog-volymer för kluster som kör Databricks Runtime 13.3 LTS och senare. Skapa en shell-skriptfil, ladda upp den till en volym och konfigurera sedan klustret att köra skriptet genom att ange dess sökväg som /Volumes/main/engineering/scripts/setup.sh. För standardåtkomstläge lägger du till sökvägen till init-skriptet allowlist innan du konfigurerar klustret.

Init-skript körs sekventiellt i den ordning du anger. Om något skript returnerar en slutkod som inte är noll kan klustret inte starta. Det här felskyddet förhindrar att kluster körs med ofullständig eller felaktig konfiguration. Du kan felsöka misslyckade init-skript genom att konfigurera klusterloggleverans och undersöka init-skriptloggarna.

Överväg init-skript som en sista utväg för konfigurationsbehov som klusteromfattande bibliotek och klusterprinciper inte kan hantera. Att använda klusterprinciper för att ange miljövariabler och Spark-konfigurationer ger ofta en enklare och mer underhållsbar lösning än init-skript.

Konfigurera bibliotek för standardåtkomstläge

Kluster som konfigurerats med standardåtkomstläge ger den starkaste säkerheten och isoleringen i Azure Databricks. Det här läget kräver uttryckligt godkännande för bibliotek och init-skript för att förhindra obehörig kodkörning på delade beräkningsresurser.

Innan du installerar Maven-bibliotek eller JAR-filer i standardkluster för åtkomstläge måste en metaarkivadministratör lägga till dem i allowlist. Maven-koordinater placeras på allowlist med formatet groupId:artifactId:version. Du kan allowlist alla versioner av ett bibliotek med groupId:artifactId, eller alla artefakter i en grupp med bara groupId. För JAR-filer som lagras i volymer eller i objektlagring, allowlist sökvägen till filen eller katalogen.

Init-skript kräver separata allowlist poster även om de lagras på samma plats som JAR-filer. När du tillåter en sökväg i listan använder Azure Databricks prefixmatchning - och lägger /Volumes/prod-libraries/ till alla filer och underkataloger vid allowlist platsen. Inkludera ett avslutande snedstreck för att förhindra oavsiktliga prefixmatchningar på katalognivå.

Det allowlist enda ger tillstånd att använda en sökväg för installation av bibliotek eller init-skript. Du behöver fortfarande lämpliga behörigheter för dataåtkomst. För volymer måste installationsidentiteten ha READ VOLUME behörighet. För standardåtkomstläge validerar klusterägarens identitet dessa behörigheter under biblioteksinstallationen.

För att konfigurera allowlistanvänder metaarkivadministratörer Katalogutforskaren, väljer metaarkivinställningarna och navigerar till avsnittet Tillåtna JARs/Init-skript . Den här centraliserade kontrollen säkerställer att säkerhetsteamen kan granska och godkänna alla bibliotek som används i organisationens beräkningsresurser och upprätthålla styrning utan att blockera produktiviteten.

Skärmbild av dialogrutan Lägg till tillåtna JAR:er/Init-skript/Maven-koordinater.

Välj rätt installationsmetod

Olika installationsmetoder för bibliotek passar olika scenarier. Följande diagram illustrerar ett beslutsflöde som hjälper dig att välja lämplig installationsmetod:

Diagram som visar de olika biblioteksinstallationsmetoderna.