Referencia de configuración de procesos

En este artículo se explican todas las opciones de configuración disponibles en la interfaz de usuario Crear proceso. La mayoría de los usuarios crean procesos 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 Uso de procesos de Azure Databricks con trabajos.

Directivas

Las directivas son un conjunto de reglas que se usan para limitar las opciones de configuración disponibles para los usuarios al crear procesos. Si un usuario no tuviera el derecho Creación de clústeres sin restricciones, solo podrá crear procesos mediante sus directivas concedidas.

Para crear procesos 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 proceso de nodo único o un 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 procesos 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 proceso, menos un núcleo para el controlador.
  • Guarda todas las salidas de registro stderr, stdout y log4j en el registro del controlador.
  • No puede convertirse en un 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 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 proceso de varios nodos cuando el proceso deba compartirse.

  • El 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 proceso y a qué datos se pueden acceder a través del proceso. Cada proceso de Azure Databricks tiene un modo de acceso.

Databricks recomienda usar el modo de acceso compartido para todas las cargas de trabajo. Use solo el modo de acceso de usuario único 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 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) 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 procesos existentes sin un modo de acceso especificado.

Para actualizar un proceso existente para que cumpla con los requisitos del catálogo de Unity, establezca el modo de acceso en Usuario único o Compartido.

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 el 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

Compute 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. Consulte ¿Qué son los grupos de Azure Databricks?.

Tipo de trabajo

En procesos de varios nodos, los nodos de trabajo ejecutan los ejecutores de Spark y otros servicios necesarios para el funcionamiento correcto de los procesos. 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 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 procesos 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 proceso. El nodo de controlador también mantiene SparkContext, interpreta todos los comandos que se ejecutan desde un cuaderno o una biblioteca en el 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 procesos acelerados 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.

Configuración de acceso puntual

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. Además, cuando se agregan nuevos nodos al proceso existente, Azure Databricks intentará 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 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 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, escribirá un número fijo de trabajos en el campo Trabajos junto a la lista desplegable Tipo de trabajo.

Nota:

Cuando se ejecuta el 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 proceso de tamaño constante infraaprovisionado.
  • El escalado automático puede reducir los costes generales en comparación con un proceso de tamaño estático.

En función del tamaño constante del 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 escalabilidad automática mejorada.

Cómo se comporta el escalado automático

El área de trabajo de los planes de precios Premium y Enterprise 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 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 proceso se ha infrautilizado en los últimos 40 segundos.
  • En los procesos multiuso, realiza la reducción vertical si el 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 optimizado tiene las siguientes características:

  • Comienza con la adición de 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 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 proceso estático para autoescala, Azure Databricks cambiará inmediatamente el tamaño del 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 los procesos con un tamaño inicial determinado si se vuelve a configurar el 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 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 proceso.

Si la diferencia entre la hora actual y la última ejecución del comando en el proceso es mayor que el período de inactividad especificado, Azure Databricks finaliza automáticamente ese proceso. 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 proceso:

  1. En la sección Etiquetas, agregue un par clave-valor para cada etiqueta personalizada.
  2. Haga clic en Agregar.

Configuración de Spark

Para ajustar los trabajos de Spark, proporcione propiedades de configuración de Spark personalizadas.

  1. En la página de configuración del proceso, haga clic en el botón de alternancia Opciones avanzadas.

  2. Haga clic en la pestaña Spark.

    Configuración de 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 Sintaxis para hacer referencia a secretos en una propiedad de configuración de Spark o en una variable de entorno.

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 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.

  1. En la página de configuración del proceso, haga clic en el botón de alternancia Opciones avanzadas.

  2. Haga clic en la pestaña Spark.

  3. Establezca las variables de entorno en el campo Variables de entorno.

    Campo de 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 proceso, Azure Databricks garantiza la entrega de todos los registros generados hasta la finalización del proceso.

El destino de los registros depende del cluster_id del 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:

  1. En la página de proceso, haga clic en el botón de alternancia Opciones avanzadas.
  2. Haga clic en la pestaña Registro.
  3. Seleccione un tipo de destino.
  4. 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.