Instalación de bibliotecas desde el almacenamiento de objetos

En este artículo se describen los pasos necesarios para instalar bibliotecas desde el almacenamiento de objetos en la nube en Azure Databricks.

Nota:

En este artículo se hace referencia al almacenamiento de objetos en la nube como concepto general y se supone que está interactuando directamente con los datos almacenados en el almacenamiento de objetos mediante URI. Databricks recomienda usar volúmenes de Unity Catalog para configurar el acceso a los archivos en el almacenamiento de objetos en la nube. Consulte Crear y trabajar con volúmenes.

Puede almacenar bibliotecas JAR y Whl de Python personalizadas en el almacenamiento de objetos en la nube, en lugar de almacenarlas en la raíz de DBFS. Consulte Bibliotecas con ámbito de clúster para obtener detalles de compatibilidad de bibliotecas completas.

Importante

Las bibliotecas se pueden instalar desde DBFS cuando se usa Databricks Runtime 14.3 LTS y versiones anteriores. Sin embargo, cualquier usuario del área de trabajo puede modificar los archivos de biblioteca almacenados en DBFS. Para mejorar la seguridad de las bibliotecas en un área de trabajo de Azure Databricks, el almacenamiento de archivos de biblioteca en la raíz de DBFS está en desuso y está deshabilitado de manera predeterminada en Databricks Runtime 15.0 y versiones posteriores. Consulte El almacenamiento de bibliotecas en la raíz de DBFS está en desuso y deshabilitado de manera predeterminada.

En su lugar, Databricks recomienda cargar todas las bibliotecas, incluidas las bibliotecas de Python, los archivos JAR y los conectores de Spark, en archivos de área de trabajo o volúmenes de Unity Catalog, o mediante repositorios de paquetes de biblioteca. Si la carga de trabajo no admite estos patrones, también puede usar bibliotecas almacenadas en el almacenamiento de objetos en la nube.

Carga de bibliotecas en el almacenamiento de objetos

Puede cargar bibliotecas en el almacenamiento de objetos de la misma manera que se cargan otros archivos. Debe tener los permisos adecuados en el proveedor de nube para crear nuevos contenedores de almacenamiento de objetos o cargar archivos en el almacenamiento de objetos en la nube.

Concesión de permisos de solo lectura al almacenamiento de objetos

Databricks recomienda configurar todos los privilegios relacionados con la instalación de bibliotecas con permisos de solo lectura.

Azure Databricks le permite asignar permisos de seguridad a clústeres individuales que rigen el acceso a los datos en el almacenamiento de objetos en la nube. Estas directivas se pueden expandir para agregar acceso de solo lectura al almacenamiento de objetos en la nube que contiene bibliotecas.

Nota:

En Databricks Runtime 12.2 LTS y versiones posteriores, no se pueden cargar bibliotecas JAR al usar clústeres con modos de acceso compartido. En Databricks Runtime 13.3 LTS y versiones posteriores, debe agregar bibliotecas JAR a la lista de permitidos de Unity Catalog. Consulte Agregar a la lista de permitidos bibliotecas y scripts de inicialización en proceso compartido.

Databricks recomienda usar entidades de servicio de Microsoft Entra ID para administrar el acceso a las bibliotecas almacenadas en Azure Data Lake Storage Gen2. Use la siguiente documentación vinculada para completar esta configuración:

  1. Cree una entidad de servicio con permisos de lectura y lista en los blobs deseados. Consulte Acceso al almacenamiento usando un principio de servicio y Microsoft Entra ID(Azure Active Directory).

  2. Guarde las credenciales mediante secretos. Consulte Secretos.

  3. Establezca las propiedades en la configuración de Spark y las variables de entorno al crear un clúster, como en el ejemplo siguiente:

    Configuración de 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
    

    Variables de entorno:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Opcional) Refactorice los scripts de inicialización mediante azcopy o la CLI de Azure.

    Puede hacer referencia a variables de entorno establecidas durante la configuración del clúster dentro de los scripts de inicialización para pasar las credenciales almacenadas como secretos para la validación.

Instalación de bibliotecas en clústeres

Para instalar una biblioteca almacenada en el almacenamiento de objetos en la nube en un clúster, complete los pasos siguientes:

  1. Seleccione un clúster de la lista en la interfaz de usuario de clústeres.
  2. Seleccione la pestaña Bibliotecas.
  3. Seleccione la opción Ruta de acceso de archivo/ADLS.
  4. Proporcione la ruta de acceso completa del URI al objeto de biblioteca (por ejemplo, abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl).
  5. Haga clic en Instalar.

También puede instalar bibliotecas mediante la API de REST o la CLI.

Instalación de bibliotecas en cuadernos

Puede usar %pip para instalar archivos de rueda de Python personalizados almacenados en el ámbito de almacenamiento de objetos en un SparkSession aislado de cuadernos. Para usar este método, debe almacenar bibliotecas en el almacenamiento de objetos legibles públicamente o usar una dirección URL firmada previamente.

Consulte Bibliotecas de Python cuyo ámbito es Notebook.

Nota:

Las bibliotecas JAR no se pueden instalar en el cuaderno. Debe instalar bibliotecas JAR en el nivel de clúster.