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 ¿Qué son los volúmenes de Unity Catalog?.
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 deshabilitado de forma predeterminada en Databricks Runtime 15.1 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:
Cree una entidad de servicio con permisos de lectura y lista en los blobs deseados. Consulte Acceso al almacenamiento mediante una entidad de servicio y Microsoft Entra ID (Azure Active Directory).
Guarde las credenciales mediante secretos. Consulte Administración de secretos.
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>}}
(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:
- Seleccione un clúster de la lista en la interfaz de usuario de clústeres.
- Seleccione la pestaña Bibliotecas.
- Seleccione la opción Ruta de acceso de archivo/ADLS.
- 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
). - 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.