Referencia de configuración de procesos
En este artículo se explican las opciones de configuración disponibles en la interfaz de usuario Crear proceso. La mayoría de los usuarios crean recursos de proceso mediante las directivas asignadas, lo que limita las opciones configurables. Si no viera una configuración particular en la interfaz de usuario, se debe a que la directiva seleccionada no permite configurar ese valor.
Las configuraciones y las herramientas de administración que se describen en este artículo se aplican a los procesos de trabajo y multiuso. Para obtener más información acerca de la configuración de procesos de trabajo, consulte Configurar los procesos de trabajos.
Creación de un nuevo recurso de proceso de uso completo
Para crear un nuevo recurso de proceso multiuso, siga estos pasos:
- En la barra lateral del área de trabajo, haga clic en Proceso.
- Haga clic en el botón Crear proceso.
- Configure el recurso de proceso.
- Haga clic en Crear proceso.
Su nuevo recurso de proceso comenzará a funcionar automáticamente y estará listo para usarse en breve.
Directivas
Las directivas son un conjunto de reglas que se usan para limitar las opciones de configuración disponibles para los usuarios al crear recursos de proceso. Si un usuario no tuviera el derecho Creación de clústeres sin restricciones, solo podrá crear recursos de proceso mediante sus directivas concedidas.
Para crear recursos de proceso en función de una directiva, seleccione una directiva del menú desplegable Directiva.
De forma predeterminada, todos los usuarios tienen acceso a la directiva de Proceso personal, lo que les permite crear fácilmente recursos de proceso de una sola máquina. Si necesitase acceso a procesos personales o a otras directivas, póngase en contacto con el administrador del área de trabajo.
Proceso de nodo único o de varios nodos
En función de la directiva, seleccione entre crear un recursos de proceso de nodo único o un recurso de proceso de varios nodos.
Los procesos de nodo único están pensados para trabajos que usan pequeñas cantidades de datos o cargas de trabajo no distribuidas, como las bibliotecas de aprendizaje automático de nodo único. Los procesos de varios nodos deberían usarse para trabajos más grandes con cargas de trabajo distribuidas.
Propiedades de nodo único
Los recursos de proceso de nodo único tienen las siguientes propiedades:
- Ejecuta Spark localmente.
- El controlador actúa tanto de maestro como de trabajo, sin nodos de trabajo.
- Genera un subproceso de ejecutor por núcleo lógico en el recurso de proceso, menos un núcleo para el controlador.
- Guarda todas las salidas de registro
stderr
,stdout
ylog4j
en el registro del controlador. - No puede convertirse en un recurso de proceso de varios nodos.
Seleccionar un solo nodo o varios nodos
Tenga en cuenta el caso de uso al decidir entre procesos de un solo nodo o varios nodos:
El procesamiento de datos a gran escala agotará los recursos de un recurso de proceso de nodo único. Para estas cargas de trabajo, Databricks recomienda usar un proceso de varios nodos.
El proceso de nodo único no está diseñado para compartirse. Para evitar conflictos de recursos, Databricks recomienda utilizar un recurso de proceso de varios nodos cuando el proceso deba compartirse.
El recurso de proceso de varios nodos no se puede escalar a 0 trabajos. En su lugar, use un proceso de nodo único.
El proceso de nodo único no es compatible con el aislamiento de procesos.
La programación de GPU no está habilitada en los procesos de nodo único.
En los procesos de nodo único, Spark no puede leer archivos Parquet con una columna UDT. Aparece el siguiente mensaje de error:
The Spark driver has stopped unexpectedly and is restarting. Your notebook will be automatically reattached.
Para solucionar este problema, deshabilite el lector nativo de Parquet:
spark.conf.set("spark.databricks.io.parquet.nativeReader.enabled", False)
Modos de acceso
El modo de acceso es una característica de seguridad que determina quién puede usar el recurso de proceso y a qué datos se pueden acceder mediante el recurso de proceso. Cada recurso del proceso de Azure Databricks tiene un modo de acceso.
Databricks recomienda usar el modo de acceso compartido para todas las cargas de trabajo. Use el modo de acceso de usuario único solo si el modo de acceso compartido no admite la funcionalidad necesaria.
Modo de acceso | Visible para el usuario | Compatibilidad con UC | Idiomas admitidos | Notas |
---|---|---|---|---|
Un usuario | Siempre | Sí | Python, SQL, Scala, R | Se puede asignar a un solo usuario y solo este puede usarlo. Se conoce como modo de acceso Asignado en algunas áreas de trabajo. |
Compartido | Siempre (requiere un plan Premium) | Sí | Python (en Databricks Runtime 11.3 LTS y versiones posteriores), SQL, Scala (en procesos habilitados para el catálogo de Unity mediante Databricks Runtime 13.3 LTS y versiones posteriores) | Puede ser utilizado por varios usuarios con aislamiento de datos entre los usuarios. |
Sin aislamiento compartido | Los administradores pueden ocultar este modo de acceso aplicando el aislamiento de usuarios en la página de configuración del administrador. | No | Python, SQL, Scala, R | Hay una configuración de nivel de cuenta relacionada para procesos compartidos sin aislamiento. |
Personalizado | Oculto (para todos los procesos nuevos) | No | Python, SQL, Scala, R | Esta opción solo se muestra si tiene un recurso de proceso existentes sin un modo de acceso especificado. |
Para actualizar un recurso de proceso existente para que cumpla con los requisitos de Unity Catalog, establezca el modo de acceso en Usuario único o Compartido. Para más información sobre la funcionalidad compatible con cada uno de estos modos de acceso en áreas de trabajo habilitadas para Unity Catalog, consulte Limitaciones del modo de acceso de proceso para Unity Catalog.
Nota:
En Databricks Runtime 13.3 LTS y versiones posteriores, se admiten scripts de inicialización y bibliotecas en todos los modos de acceso. Los requisitos y los niveles del soporte técnico varían. Consulte ¿Dónde se pueden instalar los scripts de inicialización? y Bibliotecas con ámbito de clúster.
Versiones de Databricks Runtime
Databricks Runtime es el conjunto de componentes principales que se ejecutan en el proceso. Seleccione el runtime mediante el menú desplegable Versión de Databricks Runtime. Para obtener detalles sobre las versiones de Databricks Runtime compatibles, consulte las versiones de las notas de la versión y compatibilidad de Databricks Runtime. Todas las versiones incluyen Apache Spark. Databricks recomienda lo siguiente:
- Para procesos multiuso, use la versión actual para garantizar que tenga las optimizaciones más recientes y la compatibilidad más actualizada entre el código y los paquetes cargados previamente.
- Para las cargas de trabajo operativas en ejecución de procesos de trabajo, considere usar una versión con soporte a largo plazo (LTS) de Databricks Runtime. Al usarse esta versión, se evitan problemas de compatibilidad y es posible llevar a cabo pruebas a fondo antes de realizar la actualización.
- Para casos de uso de ciencia de datos y aprendizaje automático, considere la versión Databricks Runtime ML.
Uso de la aceleración de Photon
Photon está habilitado de forma predeterminada en procesos que ejecuten Databricks Runtime 9.1 LTS y versiones posteriores.
Para habilitar o deshabilitar la aceleración de Photon, active la casilla Usar aceleración de Photon. Para obtener más información sobre Photon, consulte ¿Qué es Photon?.
Tipos de nodo de trabajo y controlador
Un recursos de proceso consta de un nodo de controlador y ninguno o varios nodos de trabajo. Puede elegir tipos de instancia de proveedor de nube independientes para los nodos de controlador y de trabajo, aunque de forma predeterminada el nodo de controlador usa el mismo tipo de instancia que el nodo de trabajo. Las distintas familias de tipos de instancia se ajustan a distintos casos de uso, como cargas de trabajo con un uso intensivo de memoria o de proceso intensivo.
También es posible seleccionar un grupo para usarlo como nodo de trabajo o controlador. Use solo un grupo con instancias de acceso puntual como tipo de trabajo. Seleccione un tipo de controlador a petición independiente para evitar que se recupere el controlador. Consulte Conexión a los grupos.
Tipo de trabajo
En procesos de varios nodos, los nodos de trabajo ejecutan los ejecutores de Spark y otros servicios necesarios para el correcto funcionamiento de un recurso de proceso. Al distribuir la carga de trabajo con Spark, todo el procesamiento distribuido se produce en los nodos de trabajo. Azure Databricks ejecuta un ejecutor por cada nodo de trabajo. Por lo tanto, los términos ejecutor y nodo de trabajo se usan indistintamente en el contexto de la arquitectura de Databricks.
Sugerencia
Para ejecutar un trabajo de Spark, necesita al menos un rol de trabajo. Si el recurso de proceso no tiene trabajos, es posible ejecutar comandos que no sean de Spark en el nodo de controlador, pero se producirá un error en los comandos de Spark.
Direcciones IP de los nodos de trabajo
Azure Databricks inicia nodos de trabajo con dos direcciones IP privadas cada uno. La dirección IP privada principal del nodo hospeda el tráfico interno de Azure Databricks. La dirección IP privada secundaria es la que usa el contenedor de Spark para la comunicación entre clústeres. Este modelo permite que Azure Databricks proporcione aislamiento entre varios recursos de proceso de la misma área de trabajo.
Tipo de controlador
El nodo de controlador mantiene la información de estado de todos los cuadernos asociados al recurso de proceso. El nodo de controlador también mantiene SparkContext, interpreta todos los comandos que se ejecutan desde un cuaderno o una biblioteca en el recurso de proceso y ejecuta el maestro de Apache Spark que se coordina con los ejecutores de Spark.
El valor predeterminado del tipo de nodo de controlador es el mismo que el tipo de nodo de trabajo. Puede elegir un tipo de nodo de controlador mayor con más memoria si planea collect()
una gran cantidad de datos de los trabajadores de Spark y analizarlos en el cuaderno.
Sugerencia
Puesto que el nodo de controlador mantiene toda la información de estado de los cuadernos asociados, asegúrese de desasociar los cuadernos no utilizados del nodo de controlador.
Tipos de instancia de GPU
Para tareas computacionalmente complejas que exigen un alto rendimiento, como las asociadas al aprendizaje profundo, Azure Databricks admite recursos de proceso que se aceleran con unidades de procesamiento de gráficos (GPU). Para más información, consulte Procesos habilitados para GPU.
Máquinas virtuales de computación confidencial de Azure
Los tipos de máquina virtual de computación confidencial de Azure impiden el acceso no autorizado a los datos mientras están en uso, incluido el operador de nube. Este tipo de máquina virtual es beneficioso para sectores y regiones altamente regulados, así como para empresas con datos confidenciales en la nube. Para más información sobre la computación confidencial de Azure, consulte Computación confidencial de Azure.
Para ejecutar las cargas de trabajo mediante las máquinas virtuales de computación confidencial de Azure, seleccione los tipos de máquina virtual de la serie DC o EC en las listas desplegables del nodo de trabajo y del controlador. Consulte Opciones de VM confidencial de Azure.
Instancias de acceso puntual
Para ahorrar costos, puede optar por usar instancias de Spot, también conocidas como VM de Azure Spot. Para ello, active la casilla Instancias de Spot.
La primera instancia siempre será a petición (el nodo de controlador siempre es a petición) y las instancias posteriores serán instancias de Spot.
Si las instancias se expulsan debido a una falta de disponibilidad, Azure Databricks intentará adquirir nuevas instancias de acceso puntual para reemplazar las instancias expulsadas. Si las instancias de acceso puntual no se pueden adquirir, las instancias a petición se implementarán para reemplazar las instancias expulsadas. Esta conmutación por recuperación a petición solo se admite para instancias de spot que se han adquirido completamente y que se están ejecutando. Las instancias de spot que producen un error durante la configuración no se reemplazan automáticamente.
Además, cuando se agregan nuevos nodos al recurso de proceso existente, Azure Databricks intenta adquirir instancias de acceso puntual para esos nodos.
Habilitar escalado automático
Cuando se activa Habilitar escalado automático, puede proporcionar un número mínimo y máximo de trabajos para el recurso de proceso. A continuación, Databricks selecciona el número adecuado de roles de trabajo para ejecutar el trabajo.
Para establecer el número mínimo y máximo de roles de trabajo entre los que se escalará automáticamente el recurso de proceso, use los campos Mínimo de trabajos y Máximo de trabajos sitiados junto a la lista desplegable Tipo de trabajo.
Si no habilita el escalado automático, debe escribir un número fijo de trabajos en el campo Trabajos junto a la lista desplegable Tipo de trabajo.
Nota:
Cuando se ejecuta el recurso de proceso, la página de detalles del proceso muestra el número de trabajos asignados. Puede comparar el número de trabajos asignados con la configuración de trabajo y realizar ajustes según sea necesario.
Ventajas del escalado automático
Con el escalado automático, Azure Databricks reasigna de forma dinámica los trabajos para que tengan en cuenta las características de su trabajo. Algunas partes de la canalización pueden ser más exigentes computacionalmente que otras, y Databricks agrega automáticamente trabajos adicionales durante estas fases del trabajo (y los quita cuando ya no son necesarios).
El escalado automático hace que sea más fácil lograr un uso elevado, ya que no es necesario aprovisionar el proceso para que coincida con una carga de trabajo. Esto se aplica especialmente a las cargas de trabajo cuyos requisitos cambian con el tiempo (como explorar un conjunto de datos en el transcurso de un día), pero también se puede aplicar a una carga de trabajo única más corta cuyos requisitos de aprovisionamiento se desconocen. Por lo tanto, el escalado automático ofrece dos ventajas:
- Las cargas de trabajo se pueden ejecutar más rápido en comparación con un recurso de proceso de tamaño constante infraaprovisionado.
- El escalado automático puede reducir los costos generales en comparación con un recurso de proceso de tamaño estático.
En función del tamaño constante del recurso de proceso y la carga de trabajo, el escalado automático le ofrece una o ambas ventajas al mismo tiempo. El tamaño de proceso puede estar por debajo del número mínimo de trabajos seleccionados cuando el proveedor de nube finaliza las instancias. En este caso, Azure Databricks reintenta de forma continua volver a aprovisionar instancias con el fin de mantener el número mínimo de trabajos.
Nota:
El escalado automático no está disponible para los trabajos de spark-submit
.
Nota:
El escalado automático de proceso tiene limitaciones al reducir verticalmente el tamaño del clúster para cargas de trabajo de Structured Streaming. Databricks recomienda usar tablas Delta Live con escalado automático mejorado para cargas de trabajo de streaming. Consulte Optimización del uso del clúster de canalizaciones de Delta Live Tables con escalado automático mejorado.
Cómo se comporta el escalado automático
El área de trabajo del plan Premium usa el escalado automático optimizado. Las áreas de trabajo del plan de precios estándar usan el escalado automático estándar.
El escalado automático optimizado tiene las siguientes características:
- Permite el escalado vertical de mínimo o máximo en dos pasos.
- Es posible reducir verticalmente, aunque el recurso de proceso no esté inactivo, si se observa el estado de archivo aleatorio.
- Realiza la reducción vertical en función de un porcentaje de los nodos actuales.
- En los procesos de trabajos, realiza la reducción vertical si el recurso de proceso se ha infrautilizado en los últimos 40 segundos.
- En los procesos multiuso, realiza la reducción vertical si el recurso de proceso se ha infrautilizado en los últimos 150 segundos.
- La propiedad
spark.databricks.aggressiveWindowDownS
de configuración de Spark especifica en segundos la frecuencia con la que el proceso toma decisiones de reducción vertical. Al aumentar el valor, la reducción vertical del proceso se realiza más lentamente. El valor máximo es 600.
El escalado automático estándar se usa en áreas de trabajo de plan estándar. El escalado automático estándar tiene las siguientes características:
- Comienza agregando 8 nodos. A continuación, se escala vertical y exponencialmente, llevando a cabo los pasos necesarios para alcanzar el máximo.
- Se reduce verticalmente cuando el 90 % de los nodos no están ocupados durante 10 minutos y el proceso ha estado inactivo durante al menos 30 segundos.
- Se escala verticalmente de manera exponencial, empezando por 1 nodo.
Escalado automático con grupos
Si va a asociar el recurso de proceso a un grupo, tenga en cuenta lo siguiente:
Asegúrese de que el tamaño del proceso solicitado sea menor o igual que el número mínimo de instancias inactivas del grupo. Si fuera mayor, el tiempo de inicio del proceso será equivalente al proceso que no use un grupo.
Asegúrese de que el tamaño máximo del proceso sea menor o igual que la capacidad máxima del grupo. Si fuera mayor, se producirá un error en la creación del proceso.
Ejemplo de escalado automático
Si vuelve a configurar un recurso de proceso estático para autoescala, Azure Databricks cambiará inmediatamente el tamaño del recurso de proceso dentro de los límites mínimo y máximo y, a continuación, inicia la autoescala. Por ejemplo, en la tabla siguiente se muestra lo que sucede con un recurso de proceso con un tamaño inicial determinado si se vuelve a configurar el recurso de proceso para escalar automáticamente entre 5 y 10 nodos.
Tamaño inicial | Tamaño después de la reconfiguración |
---|---|
6 | 6 |
12 | 10 |
3 | 5 |
Habilitar el escalado automático del almacenamiento local
A menudo puede ser difícil calcular cuánto espacio en disco necesitará un trabajo determinado. Para evitar tener que calcular cuántos gigabytes de disco administrado se deben asociar al proceso en el momento de su creación, Azure Databricks habilita automáticamente el escalado automático del almacenamiento local en todos los procesos de Azure Databricks.
Con el escalado automático del almacenamiento local, Azure Databricks supervisa la cantidad de espacio que queda disponible en el disco en los trabajos de Spark del proceso. Si un trabajo comienza a ejecutarse con demasiado poco espacio en el disco, Databricks asocia automáticamente un nuevo disco administrado al trabajo antes de que se agote el espacio en disco. Los discos tienen asociado un límite de hasta 5 TB de espacio total en disco por máquina virtual (incluido el almacenamiento local inicial de la máquina virtual).
Los discos administrados conectados a una máquina virtual solo se desasocian cuando la máquina virtual se devuelve a Azure. Es decir, los discos administrados nunca se desasocian de una máquina virtual, siempre y cuando formen parte de un proceso en ejecución. Para reducir verticalmente el uso del disco administrado, Azure Databricks recomienda usar esta característica en procesos configurados con instancias de autoescala o terminación automática.
Cifrado de discos locales
Importante
Esta característica está en versión preliminar pública.
Algunos tipos de instancias que se usan para ejecutar procesos pueden tener discos conectados localmente. Azure Databricks puede almacenar datos aleatorios o datos efímeros en estos discos conectados localmente. Para asegurarse de que todos los datos en reposo se cifren para todos los tipos de almacenamiento, incluyendo los datos aleatorios que se almacenan temporalmente en los discos locales del recurso de proceso, habilite el cifrado de disco local.
Importante
Las cargas de trabajo pueden ejecutarse más lentamente debido al impacto en el rendimiento de la lectura y escritura de datos cifrados hacia y desde los volúmenes locales.
Cuando el cifrado de disco local está habilitado, Azure Databricks genera una clave de cifrado localmente que es única para cada nodo del proceso y que se usa para cifrar todos los datos almacenados en discos locales. El ámbito de la clave es local para cada nodo del proceso y se destruye junto con el propio nodo del proceso. Durante su vigencia, la clave reside en la memoria para el cifrado y el descifrado, y se almacena cifrada en el disco.
Para habilitar el cifrado de disco local, debe usar la API de clústeres. Durante la creación o edición del proceso, establezca enable_local_disk_encryption
en true
.
Terminación automática
Es posible establecer la terminación automática de procesos. Durante la creación del proceso, especifique un período de inactividad en minutos después del cual quiere que finalice el recurso de proceso.
Si la diferencia entre la hora actual y la última ejecución del comando en el recurso de proceso es mayor que el período de inactividad especificado, Azure Databricks finaliza automáticamente ese proceso. recurso Para obtener más información sobre la terminación del proceso, consulte Finalizar un proceso.
Etiquetas
Las etiquetas permiten supervisar fácilmente el coste de los recursos en la nube que los diferentes grupos de la organización usan. Especifique etiquetas como pares clave-valor al crear el proceso y Azure Databricks aplicará estas etiquetas a recursos en la nube como máquinas virtuales y volúmenes de disco, así como a informes de uso de DBU.
En el caso de procesos iniciados desde grupos, las etiquetas personalizadas solo se aplican a los informes de uso de DBU y no se propagan a los recursos en la nube.
Para obtener información detallada sobre cómo funcionan conjuntamente los tipos de etiquetas de grupo y de proceso, consulte Supervisión del uso mediante etiquetas
Para agregar etiquetas al recurso de proceso:
- En la sección Etiquetas, agregue un par clave-valor para cada etiqueta personalizada.
- Haga clic en Agregar.
Configuración de Spark
Para ajustar los trabajos de Spark, proporcione propiedades de configuración de Spark personalizadas.
En la página de configuración del proceso, haga clic en el botón de alternancia Opciones avanzadas.
Haga clic en la pestaña Spark.
En Configuración de Spark, escriba las propiedades de configuración como un par clave-valor por línea.
Cuando configure procesos mediante la API de clústeres, establezca las propiedades de Spark en el campo spark_conf
de Crear API del clúster o Actualizar la API del clúster.
Para hacer cumplir las configuraciones de Spark en procesos, los administradores del área de trabajo pueden usar directivas de proceso.
Recuperación de una propiedad de configuración de Spark de un secreto
Databricks recomienda almacenar información confidencial, como contraseñas, en un secreto en lugar de almacenarla como texto no cifrado. Para hacer referencia a un secreto en la configuración de Spark, use la sintaxis siguiente:
spark.<property-name> {{secrets/<scope-name>/<secret-name>}}
Por ejemplo, para establecer una propiedad de configuración de Spark llamada password
en el valor del secreto almacenado en secrets/acme_app/password
:
spark.password {{secrets/acme-app/password}}
Para obtener más información, consulte Administración de secretos.
Acceso SSH a los procesos
Por motivos de seguridad, el puerto SSH está cerrado de forma predeterminada en Azure Databricks. Si desea habilitar el acceso SSH a los clústeres de Spark, consulte SSH al nodo del controlador.
Nota:
Tenga en cuenta que SSH solo se puede habilitar si el área de trabajo está implementada en su propia red virtual de Azure.
Variables de entorno
Configure variables de entorno personalizadas a las que pueda acceder desde scripts init que se ejecutan en el recurso de proceso. Databricks también ofrece variables de entorno predefinidas que se pueden usar en los scripts de inicialización. No puede invalidar estas variables de entorno predefinidas.
En la página de configuración del proceso, haga clic en el botón de alternancia Opciones avanzadas.
Haga clic en la pestaña Spark.
Establezca las variables de entorno en el campo Variables de entorno.
También es posible establecer variables de entorno mediante el campo spark_env_vars
de la API de creación de clústeres o la API de actualización de clústeres.
Entrega de registros de proceso
Al crear procesos, especifique una ubicación para entregar los registros del nodo de controlador de Spark, los nodos de trabajo y los eventos. Los registros se entregan cada cinco minutos y se archivan cada hora en el destino elegido. Cuando finaliza un recurso de proceso, Azure Databricks garantiza la entrega de todos los registros generados hasta la finalización del recurso de proceso.
El destino de los registros depende del cluster_id
del recurso de proceso. Si el destino especificado es dbfs:/cluster-log-delivery
, los registros del proceso para 0630-191345-leap375
se entregan a dbfs:/cluster-log-delivery/0630-191345-leap375
.
Para configurar la ubicación de entrega del registro:
- En la página de proceso, haga clic en el botón de alternancia Opciones avanzadas.
- Haga clic en la pestaña Registro.
- Seleccione un tipo de destino.
- Escriba la ruta de acceso del registro de proceso.
Nota:
Esta característica también está disponible en la API de REST. Consulte la API de clústeres.