Installare librerie per il calcolo
Quando si eseguono notebook e processi nel calcolo di Azure Databricks, spesso sono necessari pacchetti di terze parti o codice personalizzato non incluso nel runtime predefinito. L'installazione di librerie a livello di cluster garantisce che ogni notebook e processo che usa tale ambiente di calcolo abbia accesso alle stesse dipendenze, creando un ambiente di esecuzione coerente.
Comprendere come installare le librerie diventa essenziale man mano che i flussi di lavoro di ingegneria dei dati aumentano di complessità. È necessario conoscere il metodo di installazione da usare, dove archiviare i file di libreria e il modo in cui le modalità di accesso influiscono sulle opzioni.
Informazioni sulle librerie con ambito di calcolo
Le librerie con ambito di calcolo vengono installate in un cluster e diventano disponibili per tutti i notebook e i processi eseguiti in tale cluster. A differenza delle librerie con ambito notebook che vengono installate solo per una sessione di notebook specifica, le librerie con ambito di calcolo vengono mantenute tra i riavvii del cluster e forniscono un ambiente condiviso per tutti gli utenti.
Quando si installa una libreria a livello di cluster, Azure Databricks reinstalla automaticamente ogni volta che viene avviato il cluster. Questo comportamento garantisce la coerenza: non è necessario reinstallare manualmente le dipendenze dopo l'arresto e il riavvio di un cluster. Tutti i notebook collegati al cluster possono importare e usare immediatamente i pacchetti installati.
Annotazioni
Per installare le librerie in un cluster, è necessario disporre dell'autorizzazione CAN MANAGE per tale cluster. Questa autorizzazione consente di modificare la configurazione del cluster, inclusa l'aggiunta e la rimozione di librerie. Senza questa autorizzazione, non sarà possibile accedere all'interfaccia di installazione della libreria.
Le librerie con ambito di calcolo supportano le ruote Python, i file JAR Java e i pacchetti R. È possibile installarli da repository di pacchetti come PyPI e Maven o da file archiviati nei file dell'area di lavoro, nei volumi del catalogo Unity o nell'archiviazione di oggetti cloud. Il metodo di installazione scelto dipende dal tipo di libreria, dalla modalità di accesso al cluster e dai requisiti di sicurezza dell'organizzazione.
Tuttavia, le librerie con ambito di calcolo presentano una limitazione importante: qualsiasi libreria installata influisce su ogni notebook nel cluster. Se team diversi necessitano di versioni in conflitto della stessa libreria, sono necessari cluster separati o installazioni con ambito notebook per evitare conflitti.
Installare librerie da repository di pacchetti
I repository di pacchetti offrono il modo più comune per installare le librerie. PyPI ospita pacchetti Python, Maven ospita librerie Java e Scala e CRAN ospita pacchetti R. Questi repository gestiscono automaticamente la risoluzione delle dipendenze e la gestione delle versioni.
Per installare una libreria da PyPI, selezionare PyPI come origine della libreria e immettere il nome del pacchetto. Per i carichi di lavoro di produzione, specificare una versione esatta per garantire la riproducibilità: pymssql==2.3.9. Senza un numero di versione, Azure Databricks installa la versione più recente disponibile, che potrebbe cambiare tra installazioni e potenzialmente interrompere il codice.
Le librerie Maven richiedono coordinate nel formato groupId:artifactId:version. Ad esempio, per installare la libreria microsoft JDBC Driver per SQL Server, usare com.microsoft.sqlserver:mssql-jdbc:13.2.1.jre11. È possibile cercare i pacchetti direttamente nella finestra di dialogo di installazione se non si conoscono le coordinate esatte. Maven supporta anche l'esclusione di dipendenze transitive specifiche che potrebbero essere in conflitto con altre librerie installate.
Per i pacchetti R da CRAN, specificare il nome del pacchetto. A differenza delle librerie Python e Java, le installazioni CRAN estraggono sempre la versione più recente dal mirror configurato. Per fissare versioni specifiche dei pacchetti R, è necessario archiviare i file del pacchetto nei file o nei volumi di lavoro anziché eseguire l'installazione da CRAN.
Con i cluster configurati in modalità di accesso standard, le coordinate Maven e i percorsi di file JAR richiedono allowlist l'approvazione prima dell'installazione. Questa misura di sicurezza garantisce agli amministratori di esaminare e approvare le librerie eseguite nelle risorse di calcolo condivise.
Annotazioni
Per altre informazioni sulla configurazione e la gestione allowlists per le librerie, vedere la documentazione.
Installare librerie da file
L'archiviazione dei file di libreria nei file dell'area di lavoro o nei volumi del catalogo Unity offre un controllo preciso sulle versioni delle librerie usate dai cluster. Questo approccio funziona correttamente quando sono necessarie librerie non disponibili nei repository pubblici, nei pacchetti personalizzati creati internamente o versioni specifiche non più disponibili dai repository dei pacchetti.
L'uso dei file dell'area di lavoro e dei volumi del catalogo Unity per l'installazione della libreria gestisce la gestione centralizzata anziché ignorare i controlli di sicurezza con installazioni ad hoc come comandi pip3 diretti o script personalizzati non gestiti eseguiti dai notebook. I volumi del catalogo Unity offrono una governance avanzata tramite il modello di controllo di accesso di Unity Catalog, assicurando che tutte le installazioni di librerie vengano rilevate con log di controllo e protette da autorizzazioni con granularità fine.
I file dell'area di lavoro offrono un percorso pratico per l'archiviazione della libreria con un limite di dimensioni file di 500 MB. Per installare una libreria dai file dell'area di lavoro, caricare il file wheel, JAR o requirements.txt tramite la finestra di dialogo Importa area di lavoro, quindi farvi riferimento durante l'installazione della libreria usando un percorso come /Workspace/Users/you@example.com/libraries/mypackage-1.0.0-py3-none-any.whl.
I volumi del catalogo Unity offrono sicurezza e governance ottimizzate per l'archiviazione delle librerie. È possibile controllare l'accesso tramite le autorizzazioni del catalogo Unity, assicurando che solo gli utenti autorizzati possano leggere o modificare i file di libreria. Caricare i file in un volume tramite Catalog Explorer, quindi installarli usando un percorso come /Volumes/main/engineering/libraries/mypackage-1.0.0-py3-none-any.whl. L'identità usata per l'installazione deve disporre dell'autorizzazione READ VOLUME per il volume specificato.
I file requirements.txt Python funzionano sia con i file dell'area di lavoro che con i volumi in Databricks Runtime 15.0 o versioni successive. Questi file consentono di definire più dipendenze dei pacchetti in un singolo file, semplificando la gestione di ambienti coerenti tra i cluster. Caricare il file requirements.txt e installarlo esattamente come qualsiasi altra libreria. Azure Databricks installa automaticamente tutti i pacchetti elencati.
Per i cluster con modalità di accesso standard, è necessario aggiungere i percorsi dei file di libreria al allowlist prima dell'installazione. Questo vale sia per i file dell'area di lavoro che per i volumi, assicurando che gli amministratori approvino le librerie usate nel calcolo condiviso.
Usare script init per la configurazione avanzata
Gli script Init eseguono comandi della shell durante l'avvio del cluster, prima dell'avvio del driver Spark e degli executor. Anche se Databricks non consiglia l'uso di script init per l'installazione della libreria, ovvero le librerie con ambito cluster offrono un approccio migliore, gli script init risultano utili per la configurazione a livello di sistema che le librerie non possono gestire.
È possibile usare script init per installare i pacchetti di sistema con apt-get, configurare le variabili di ambiente o configurare gli agenti di monitoraggio. Ad esempio, uno script init può installare un driver di database specializzato che richiede librerie di sistema, quindi configurare i parametri di connessione tramite variabili di ambiente. Lo script viene eseguito ogni volta che viene avviato il cluster, assicurandosi che la configurazione venga mantenuta tra i riavvii.
Archiviare gli script init nei volumi del catalogo Unity per i cluster che eseguono Databricks Runtime 13.3 LTS e versioni successive. Creare un file di script della shell, caricarlo in un volume, quindi configurare il cluster per l'esecuzione dello script specificandone il percorso, ad esempio /Volumes/main/engineering/scripts/setup.sh. Per la modalità di accesso standard, aggiungere il percorso dello script init a allowlist prima di configurare il cluster.
Gli script Init vengono eseguiti in sequenza nell'ordine specificato. Se uno script restituisce un codice di uscita diverso da zero, l'avvio del cluster non riesce. Questa protezione dagli errori impedisce l'esecuzione dei cluster con configurazione incompleta o errata. È possibile risolvere i problemi relativi agli script init non riusciti configurando il recapito dei log del cluster ed esaminando i log degli script init.
Prendere in considerazione gli script init come ultima risorsa per le esigenze di configurazione che le librerie con ambito cluster e i criteri del cluster non possono risolvere. L'uso dei criteri del cluster per impostare le variabili di ambiente e le configurazioni di Spark offre spesso una soluzione più semplice e gestibile rispetto agli script init.
Configurare le librerie per la modalità di accesso standard
I cluster configurati con la modalità di accesso standard offrono la sicurezza e l'isolamento più sicuri in Azure Databricks. Questa modalità richiede l'approvazione esplicita per le librerie e gli script init per impedire l'esecuzione di codice non autorizzato nelle risorse di calcolo condivise.
Prima di installare librerie Maven o file JAR nei cluster in modalità di accesso standard, un amministratore del metastore deve aggiungerli a allowlist. Le coordinate Maven devono essere specificate in allowlist nel formato groupId:artifactId:version. È possibile allowlist tutte le versioni di una libreria con groupId:artifactId o tutti gli artefatti in un gruppo con solo groupId. Per i file JAR archiviati nei volumi o nell'archiviazione di oggetti, allowlist il percorso del file o il percorso della directory.
Gli script Init richiedono voci separate allowlist anche se archiviate nello stesso percorso dei file JAR. Quando si inserisce un percorso nell'elenco elementi consentiti, Azure Databricks usa la corrispondenza prefissi. L'aggiunta di /Volumes/prod-libraries/ a allowlist consente tutti i file e le sottodirectory in quel percorso. Includere una barra finale per impedire corrispondenze di prefisso impreviste a livello di directory.
Solo il allowlist concede l'autorizzazione per l'uso di un percorso per l'installazione di libreria o script init. Sono comunque necessarie autorizzazioni di accesso ai dati appropriate. Per i volumi, l'identità del programma di installazione deve avere l'autorizzazione READ VOLUME. Per la modalità di accesso standard, l'identità del proprietario del cluster convalida queste autorizzazioni durante l'installazione della libreria.
Per configurare allowlist, gli amministratori del metastore usano Catalog Explorer, selezionando le impostazioni del metastore e navigando alla sezione Allowed JARs/Init Scripts. Questo controllo centralizzato garantisce che i team di sicurezza possano esaminare e approvare tutte le librerie usate nelle risorse di calcolo dell'organizzazione, mantenendo la governance senza bloccare la produttività.
Scegliere il metodo di installazione corretto
Diversi metodi di installazione della libreria si adattano a diversi scenari. Il diagramma seguente illustra un flusso decisionale che consente di selezionare l'approccio di installazione appropriato: