Installare librerie dall'archiviazione di oggetti

Questo articolo illustra i passaggi necessari per installare le librerie dall'archiviazione di oggetti cloud in Azure Databricks.

Nota

Questo articolo si riferisce all'archiviazione di oggetti cloud come concetto generale e presuppone che si interagisca direttamente con i dati archiviati nell'archivio oggetti usando gli URI. Databricks consiglia di usare i volumi di Unity Catalog per configurare l'accesso ai file nell'archiviazione di oggetti cloud. Vedere Creare e usare volumi.

È possibile archiviare librerie JAR e Whl Python personalizzate nell'archiviazione di oggetti cloud, anziché archiviarle nella radice DBFS. Per informazioni dettagliate sulla compatibilità della libreria, vedere Librerie con ambito cluster.

Importante

Le librerie possono essere installate da DBFS quando si usa Databricks Runtime 14.3 LTS e versioni successive. Tuttavia, qualsiasi utente dell'area di lavoro può modificare i file di libreria archiviati in DBFS. Per migliorare la sicurezza delle librerie in un'area di lavoro di Azure Databricks, l'archiviazione dei file di libreria nella radice DBFS è deprecata e disabilitata per impostazione predefinita in Databricks Runtime 15.0 e versioni successive. Per impostazione predefinita, vedere Archiviazione di librerie nella radice DBFS deprecata e disabilitata.

Databricks consiglia invece di caricare tutte le librerie, incluse le librerie Python, i file JAR e i connettori Spark, nei file dell'area di lavoro o nei volumi del catalogo Unity o usando i repository dei pacchetti di libreria. Se il carico di lavoro non supporta questi modelli, è anche possibile usare le librerie archiviate nell'archiviazione di oggetti cloud.

Caricare librerie nell'archivio oggetti

È possibile caricare le librerie nell'archivio oggetti nello stesso modo in cui si caricano altri file. È necessario disporre delle autorizzazioni appropriate nel provider di servizi cloud per creare nuovi contenitori di archiviazione oggetti o caricare file nell'archiviazione di oggetti cloud.

Concedere autorizzazioni di sola lettura all'archiviazione di oggetti

Databricks consiglia di configurare tutti i privilegi correlati all'installazione della libreria con autorizzazioni di sola lettura.

Azure Databricks consente di assegnare autorizzazioni di sicurezza a singoli cluster che regolano l'accesso ai dati nell'archiviazione di oggetti cloud. Questi criteri possono essere espansi per aggiungere l'accesso in sola lettura all'archiviazione di oggetti cloud che contiene librerie.

Nota

In Databricks Runtime 12.2 LTS e versioni successive non è possibile caricare librerie JAR quando si usano cluster con modalità di accesso condiviso. In Databricks Runtime 13.3 LTS e versioni successive è necessario aggiungere librerie JAR all'elenco elementi consentiti di Unity Catalog. Vedere Allowlist libraries and init scripts on shared compute .See Allowlist libraries and init scripts on shared compute.See Allowlist libraries and init scripts on shared compute.

Databricks consiglia di usare le entità servizio Microsoft Entra ID per gestire l'accesso alle librerie archiviate in Azure Data Lake Archiviazione Gen2. Per completare questa configurazione, usare la documentazione collegata seguente:

  1. Creare un'entità servizio con autorizzazioni di lettura ed elenco per i BLOB desiderati. Vedere Accedere all'archiviazione usando un'entità servizio e Microsoft Entra ID(Azure Active Directory).See Access storage using a service principle & Microsoft Entra ID(Azure Active Directory).

  2. Salvare le credenziali usando i segreti. Vedere Segreti.

  3. Impostare le proprietà nella configurazione spark e nelle variabili di ambiente durante la creazione di un cluster, come nell'esempio seguente:

    Configurazione di Spark:

    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
    

    Variabili ambientali:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Facoltativo) Eseguire il refactoring degli script init usando azcopy o l'interfaccia della riga di comando di Azure.

    È possibile fare riferimento alle variabili di ambiente impostate durante la configurazione del cluster all'interno degli script init per passare le credenziali archiviate come segreti per la convalida.

Installare le librerie nei cluster

Per installare una libreria archiviata nell'archiviazione oggetti cloud in un cluster, seguire questa procedura:

  1. Selezionare un cluster dall'elenco nell'interfaccia utente dei cluster.
  2. Selezionare la scheda Librerie .
  3. Selezionare l'opzione Percorso file/ADLS .
  4. Specificare il percorso URI completo dell'oggetto libreria , ad esempio abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl.
  5. Fare clic su Installa.

È anche possibile installare librerie usando l'API REST o l'interfaccia della riga di comando.

Installare librerie nei notebook

È possibile usare %pip per installare file della rotellina Python personalizzati archiviati nell'archivio oggetti con ambito SparkSession isolato da notebook. Per usare questo metodo, è necessario archiviare le librerie nell'archivio oggetti leggibili pubblicamente o usare un URL prefirmato.

Vedere Librerie Python con ambito notebook.

Nota

Le librerie JAR non possono essere installate nel notebook. È necessario installare librerie JAR a livello di cluster.