Administración de procesos

En este artículo se describe cómo administrar el proceso de Azure Databricks, incluida la visualización, edición, inicio, terminación, eliminación, control del acceso y la supervisión del rendimiento y los registros. También puede usar la API de clústeres para administrar el proceso mediante programación.

Visualización proceso

Para ver el proceso, haga clic en Icono ProcesoProceso en la barra lateral del área de trabajo.

En el lado izquierdo hay dos columnas que indican si el proceso se ha anclado y el estado del proceso. Mantenga el puntero sobre el estado para obtener más información.

Visualización de la configuración de proceso como un archivo JSON

A veces, puede resultar útil ver la configuración de proceso como JSON. Esto resulta especialmente útil cuando desea crear un proceso similar mediante la API de clústeres. Cuando vea un proceso existente, vaya a la pestaña Configuración, haga clic en JSON en la parte superior derecha de la pestaña, copie el JSON y péguelo en la llamada API. La vista JSON es de solo lectura.

Anclar un proceso

30 días después de finalizar un proceso, se elimina permanentemente. Para mantener una configuración de proceso de uso completo una vez que se haya terminado un proceso durante más de 30 días, un administrador puede anclar el proceso. Se pueden anclar hasta 100 recursos de proceso.

Los administradores pueden anclar un proceso desde la lista de proceso o la página de detalles de proceso haciendo clic en el icono de anclaje.

Edición de un proceso

Puede editar la configuración de un proceso desde la interfaz de usuario de detalles de proceso.

Nota:

  • Los cuadernos y los trabajos que se adjuntaron al proceso permanecen conectados después de la edición.
  • Las bibliotecas instaladas en el proceso permanecen instaladas después de la edición.
  • Si edita cualquier atributo de un proceso en ejecución (excepto el tamaño de proceso y los permisos), debe reiniciarlo. Esto puede interrumpir a los usuarios que actualmente usan el proceso.
  • Solo puede editar un proceso en ejecución o terminado. Sin embargo, puede actualizar lospermisos de proceso no en esos estados en la página de detalles del proceso.

Clonación de un proceso

Para clonar un proceso existente, seleccione Clonar en el menú kebab del proceso menú de tres puntos verticales s (también conocido como menú de tres puntos).

Después de seleccionar clonar, la interfaz de usuario de creación de proceso se abre rellenada previamente con la configuración de proceso. Los siguientes atributos no se incluyen en el clon:

  • Permisos de proceso
  • Bibliotecas instaladas
  • Cuadernos adjuntos

Permisos de proceso

Hay cuatro niveles de permisos para un proceso: NO PERMISSIONS, CAN ATTACH TO, CAN RESTART y CAN MANAGE. En la tabla se enumeran las capacidades de cada permiso.

Importante

Los usuarios con permisos CAN ATTACH TO pueden ver las claves de cuenta de servicio en el archivo log4j. Tenga cuidado al conceder este nivel de permiso.

Aptitud NO PERMISSIONS CAN ATTACH TO CAN RESTART CAN MANAGE
Asociación de cuadernos al proceso x x x
Visualización de la interfaz de usuario de Spark x x x
Visualización de métricas de proceso x x x
Visualización de los registros de controladores x (consulte la nota)
Finalización del proceso x x
Iniciar y reiniciar el proceso x x
Edición del proceso x
Adjuntar la biblioteca al proceso x
Cambio de tamaño del proceso x
Modificar permisos x

Los administradores del área de trabajo tienen el permiso CAN MANAGE en todo el proceso de su área de trabajo. Los usuarios automáticamente tienen el permiso CAN MANAGE en el proceso que crean.

Nota:

Los secretos no se censuran de los flujos stdout y stderr de registros de controladores de Spark del clúster. Para proteger los datos confidenciales, los registros de controladores de Spark solo son visibles por los usuarios con el permiso CAN MANAGE en el trabajo, el modo de acceso de usuario único y los clústeres en modo de acceso compartido. Para permitir que los usuarios con los permisos CAN ATTACH TO o CAN RESTART puedan ver los registros de estos clústeres, establezca la siguiente propiedad de configuración de Spark en la configuración del clúster: spark.databricks.acl.needAdminPermissionToViewLogs false.

En clústeres de modo de acceso compartido sin aislamiento, los usuarios pueden ver los registros de controladores de Spark con el permiso CAN ATTACH TO o CAN MANAGE. Para limitar quién puede leer los registros solo a los usuarios con el permiso CAN MANAGE, establezca spark.databricks.acl.needAdminPermissionToViewLogs en true.

Consulte configuración de Spark para obtener información sobre cómo agregar propiedades de Spark a una configuración de clúster.

Configuración de permisos de proceso

En esta sección, se describe cómo administrar los permisos mediante la interfaz de usuario del área de trabajo. También puede usar API Permissions o el proveedor de Terraform de Databricks.

Debe tener el permiso CAN MANAGE en un proceso para configurar los permisos de proceso.

  1. En la barra lateral, haga clic en Proceso.
  2. En la fila del proceso, haga clic en el menú kebab puntos suspensivos verticales de la derecha y seleccione Editar permisos.
  3. En Configuración de permisos, haga clic en el menú desplegable Seleccionar usuario, grupo o entidad de servicio… y seleccione un usuario, grupo o entidad de servicio.
  4. Seleccione un permiso en el menú desplegable de permisos.
  5. Haga clic en Agregar y, luego, en Guardar.

Finalización de un proceso

Para guardar los recursos de proceso, puede finalizar un proceso. La configuración del proceso finalizado se almacena para que pueda ser utilizada de nuevo (o, en el caso de los trabajos, deinicio automático) más adelante. Puede finalizar manualmente un proceso o configurar el proceso para que finalice automáticamente después de un período de inactividad especificado. Cuando el número de procesos terminados supera los 150, se eliminan los procesos más antiguos.

A menos que un proceso sea anclado o se reinicie, se elimina automáticamente y permanentemente 30 días después de la finalización.

El proceso terminado aparece en la lista de proceso con un círculo gris a la izquierda del nombre de proceso.

Nota:

Cuando se ejecuta un trabajo en un nuevo proceso de trabajo (que normalmente se recomienda), el proceso finaliza y no está disponible para reiniciarse cuando se completa el trabajo. Por otro lado, si programa un trabajo para que se ejecute en un proceso todo-propósito existente que se haya terminado, ese proceso inicio automático.

Importante

Si usa un Área de trabajo de prueba Premium, se finaliza todo el proceso en ejecución:

  • Al actualizar un área de trabajo a la versión Premium completa.
  • Si el área de trabajo no se ha actualizado y la versión de prueba expira.

Finalización manual

Puede finalizar manualmente un proceso de la lista de proceso (haciendo clic en el cuadrado de la fila del proceso) o en la página de detalles del proceso (haciendo clic en Finalizar).

Terminación automática

También puede establecer la terminación automática para un proceso. Durante la creación del proceso, puede especificar un período de inactividad en minutos después del cual desea 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.

Un proceso es considerado inactivo cuando todos los comandos del proceso, incluidos los trabajos de Spark, Structured Streaming y las llamadas JDBC, han terminado de ejecutarse.

Advertencia

  • El proceso no notifica la actividad resultante del uso de DStreams. Esto significa que se puede finalizar un proceso de terminación automática mientras se ejecuta DStreams. Desactive la terminación automática para los clústeres que ejecutan DStreams o considere la posibilidad de usar Structured Streaming.
  • El proceso inactivo continúa acumulando cargos de instancia de DBU y en la nube durante el período de inactividad anterior a la finalización.

Configuración de la terminación automática

Puede configurar la terminación automática en la nueva interfaz de usuario de proceso. Asegúrese de que la casilla está marcada e ingrese un número de minutos en el ajuste Terminar tras minutos de inactividad.

Puede cancelar la terminación automática al desactivar la casilla de terminación automática o al especificar un período de inactividad de 0.

Nota:

La terminación automática se admite mejor en las versiones más recientes de Spark. Las versiones anteriores de Spark tienen limitaciones conocidas que pueden dar lugar a informes inexactos de la actividad de proceso. Por ejemplo, el proceso que ejecuta comandos JDBC, R o streaming puede informar un tiempo de actividad obsoleto que conduce a una terminación prematura del proceso. Actualice a la versión más reciente de Spark para disfrutar de las ventajas de las correcciones de errores y las mejoras en la terminación automática.

Finalización inesperada

A veces, un proceso finaliza de forma inesperada, no como resultado de una terminación manual o una terminación automática configurada.

Para obtener una lista de los motivos de finalización y los pasos para solucionarlo, consulte Knowledge Base.

Eliminación de un proceso

La eliminación de un proceso finaliza el proceso y quita su configuración. Para eliminar un proceso, seleccione Eliminar en el menú del procesoKebab.

Advertencia

No es posible deshacer esta acción.

Para eliminar un proceso anclado, primero hay que desanclarlo por un administrador.

También puede invocar la API de clústeres punto de conexión para eliminar un proceso mediante programación.

Reinicio de un proceso

Puede reiniciar un proceso terminado previamente desde la lista de proceso, la página de detalles de proceso o un cuaderno. También puede invocar la API de clústeres del punto de conexión para iniciar un proceso mediante programación.

Azure Databricks identifica un proceso mediante su ID de clúster único. Cuando se inicia un proceso finalizado, Databricks vuelve a crear el proceso con el mismo ID, instala automáticamente todas las bibliotecas y vuelve a conectar los cuadernos.

Nota:

Si usa un Área de trabajo de prueba y la prueba ha expirado, no podrá iniciar un proceso.

Reinicie un proceso para actualizarlo con las imágenes más recientes

Al reiniciar un proceso, obtiene las imágenes más recientes para los contenedores de recursos de proceso y los hosts de máquina virtual. Es especialmente importante programar reinicios regulares para los procesos de ejecución de larga duración, como los que se usan para procesar datos en streaming.

Debe encargarse de reiniciar todos los recursos de proceso periódicamente para mantener actualizada la imagen con la versión más reciente.

Importante

Si habilita el perfil de seguridad de cumplimiento para su cuenta o su área de trabajo, el proceso de ejecución de larga duración se reiniciará automáticamente según sea necesario durante una ventana de mantenimiento programado. Esto reduce el riesgo de que un reinicio automático interrumpa un trabajo programado. También puede forzar el reinicio durante la ventana de mantenimiento. Consulte Actualización automática del clúster.

Ejemplo de Notebook: búsqueda de proceso de ejecución prolongada

Si es administrador del área de trabajo, puede ejecutar un script que determine cuánto tiempo se ha ejecutado cada uno de los procesos y, opcionalmente, reiniciarlos si son anteriores a un número especificado de días. Azure Databricks proporciona este script en forma de cuaderno.

Las primeras líneas del script definen los siguientes parámetros de configuración:

  • min_age_output: el número máximo de días que se puede ejecutar un proceso. El predeterminado es 1.
  • perform_restart: si True, el script reinicia cualquier proceso con una antigüedad mayor que el número de días especificado por min_age_output. El valor predeterminado es False, que identifica el proceso de ejecución prolongada, pero no los reinicia.
  • secret_configuration: reemplace los valores REPLACE_WITH_SCOPE y REPLACE_WITH_KEY por un ámbito de secreto y un nombre de clave. Para obtener más información sobre cómo configurar los secretos, consulte el cuaderno.

Advertencia

Si establece perform_restart en True, el script reinicia automáticamente el proceso apto, lo que puede hacer que los trabajos activos produzcan errores y restablezcan los cuadernos abiertos. Para reducir el riesgo de experimentar interrupciones de los trabajos críticos para la empresa que se ejecutan en el área de trabajo, planee una ventana de mantenimiento programada y asegúrese de que se lo notifica a los usuarios del área de trabajo.

Identificar y opcionalmente reiniciar el proceso de ejecución prolongada

Obtener el cuaderno

Inicio automático de proceso para trabajos y consultas JDBC/ODBC

Cuando un trabajo asignado a un proceso terminado está programado para ejecutarse o se conecta a un proceso terminado desde una interfaz JDBC/ODBC, el proceso se reinicia automáticamente. Consulte Creación de un trabajo y conexión de JDBC.

El inicio automático de proceso permite configurar el proceso para finalizar automáticamente sin necesidad de intervención manual para reiniciar el proceso para los trabajos programados. Además, puede programar la inicialización de proceso mediante la programación de un trabajo para que se ejecute en un proceso terminado.

Antes de que un equipo se reinicie automáticamente, se comprueban los permisos de control de acceso del equipo y del trabajo .

Nota:

Si el proceso se ha creado en la versión 2.70 o anterior de la plataforma de Azure Databricks, no se producirá ningún inicio automático: los trabajos programados para ejecutarse en el proceso terminado producirán un error.

Ver información de proceso en la interfaz de usuario de Apache Spark

Para ver información detallada sobre los trabajos de Spark, seleccione la pestaña Interfaz de usuario de Spark en la página de detalles del proceso.

Si reinicia un proceso terminado, la interfaz de usuario de Spark muestra información para el proceso reiniciado, no la información histórica del proceso finalizado.

Visualización de registros de proceso

Azure Databricks proporciona tres tipos de registro de actividad relacionada con el proceso:

  • Registros de eventos de proceso, que capturan eventos de ciclo de vida de proceso, como las ediciones de creación, finalización y configuración.
  • Registro de controladores y trabajadores de Apache Spark, que puede utilizar para depurar.
  • Compute los registros de los scripts de init, que son valiosos para depurar los scripts de inicio.

En esta sección se describen los registros de eventos de proceso y los registros de controlador y de trabajo. Para obtener más información sobre los registros de scripts de inicio, consulte Registro de scripts de inicio.

Registros de eventos de proceso

El registro de eventos de proceso muestra eventos importantes del ciclo de vida de proceso desencadenados manualmente por acciones de usuario o automáticamente por Azure Databricks. Estos eventos afectan al funcionamiento de un proceso en su conjunto y a los trabajos que se ejecutan en el proceso.

Para ver los tipos de eventos compatibles, consulte la estructura de datos API de clústeres.

Los eventos se almacenan durante 60 días, que es comparable a otras duraciones de retención de datos en Azure Databricks.

Visualización del registro de eventos de un proceso

Para ver el registro de eventos del proceso, seleccione la pestaña Registro de eventos en las páginas de detalles del proceso.

Para más información sobre un evento, haga clic en su fila en el registro y, a continuación, haga clic en la pestaña JSON para obtener más detalles.

Registro de trabajo y controlador de proceso

Las instrucciones de registro e impresión directas de los cuadernos, los trabajos y las bibliotecas se guardan en los registros del controlador de Spark. Puede acceder a estos archivos de registro desde la pestaña Registros del controlador de la página de detalles del proceso. Haga clic en un archivo de registro para descargarlo.

Estos registros tienen tres salidas:

  • Salida estándar
  • Error estándar
  • Registros log4j

Para ver los registros de trabajo de Spark, use la pestaña de la Interfaz de usuario de Spark. También puede configurar una ubicación de entrega de registros para el proceso. Los registros de trabajo y de proceso se entregan a la ubicación que especifique.

Supervisión del rendimiento

Para ayudarle a supervisar el rendimiento del proceso de Azure Databricks, Azure Databricks proporciona acceso a las métricas desde la página de detalles del proceso. Para Databricks Runtime 12.2 e inferiores, Azure Databricks proporciona acceso a las métricas Ganglia. Para Databricks Runtime 13.0 y versiones posteriores, Azure Databricks proporciona métricas de proceso.

Además, puede configurar un proceso de Azure Databricks para enviar métricas a un área de trabajo de Log Analytics en Azure Monitor, la plataforma de supervisión para Azure.

También puede instalar agentes de Datadog en nodos de proceso para enviar métricas de Datadog a su cuenta de Datadog.

Métricas de proceso

Las métricas de proceso son la herramienta de supervisión predeterminada para Databricks Runtime 13.0 y versiones posteriores. Para acceder a la interfaz de usuario de métricas de proceso, vaya a la pestaña Métricas de la página de detalles del proceso.

Puede ver las métricas históricas seleccionando un intervalo de tiempo mediante el filtro de selección de fecha. Las métricas se recopilan cada minuto. También puede obtener las últimas métricas haciendo clic en el botón Actualizar. Para más información, consulte Visualización de métricas de proceso.

Métricas de Ganglia

Nota:

Las métricas de Ganglia solo están disponibles para Databricks Runtime 12.2 y versiones inferiores.

Para acceder a la interfaz de usuario de Ganglia, vaya a la pestaña Métricas de la página de detalles del proceso. Las métricas de CPU están disponibles en la interfaz de usuario de Ganglia para todos los entornos de ejecución de Databricks. Las métricas de GPU están disponibles para el proceso habilitado para GPU.

Para ver las métricas en directo, haga clic en el vínculo de la interfaz de usuario de Ganglia.

Para ver las métricas históricas, haga clic en un archivo de instantánea. La instantánea contiene métricas agregadas de la hora anterior a la hora seleccionada.

Nota:

Ganglia no es compatible con contenedores Docker. Si usa un Contenedor de Docker con el proceso, las métricas de Ganglia no estarán disponibles.

Configuración de la recopilación de métricas de Ganglia

De forma predeterminada, Azure Databricks recopila las métricas de Ganglia cada 15 minutos. Para configurar el período de recopilación, establezca la variable de entorno DATABRICKS_GANGLIA_SNAPSHOT_PERIOD_MINUTES usando un script de inicialización o en el campo spark_env_vars en Crear API de clústeres.

Azure Monitor

Puede configurar un proceso de Azure Databricks para enviar métricas a un área de trabajo de Log Analytics en Azure Monitor, la plataforma de supervisión de Azure. Para obtener instrucciones completas, consulte Supervisión de Azure Databricks.

Nota:

Si implementó el área de trabajo de Azure Databricks en su propia área de trabajo virtual y configuró los grupo de seguridad de red (NSG) para denegar todo el tráfico de salida que Azure Databricks no necesita, debe configurar una regla de salida adicional para la etiqueta de servicio «AzureMonitor».

Ejemplo de cuaderno: métricas de Datadog

Métricas de Datadog

Puede instalar agentes de Datadog en nodos de proceso para enviar métricas de Datadog a su cuenta de Datadog. En el cuaderno siguiente se muestra cómo instalar un agente de Datadog en un proceso mediante un script de inicialización con ámbito de proceso.

Para instalar el agente de Datadog en todo el proceso, administre el script de inicialización con ámbito de proceso mediante una directiva de proceso.

Instalación del cuaderno de script de inicialización del agente de Datadog

Obtener el cuaderno

Retirada de instancias de acceso puntual

Dado que Instancias de acceso puntual pueden reducir los costos, la creación de procesos mediante instancias de spot en lugar de instancias a petición es una manera común de ejecutar trabajos. Sin embargo, los mecanismos de programación del proveedor de nube pueden dar preferencia a las instancias de acceso puntual. La preferencia por las instancias de acceso puntual puede generar problemas con los trabajos que se ejecutan, entre los que se incluyen:

  • Errores de captura aleatoria
  • Pérdida de datos aleatorios
  • Pérdida de datos RDD
  • Errores de trabajo

Puede habilitar la retirada para solucionar estos problemas. La retirada aprovecha la notificación que normalmente envía el proveedor de nube antes de retirar una instancia de acceso puntual. Cuando una instancia de acceso puntual que contiene un ejecutor recibe una notificación de preferencia, el proceso de retirada intentar migrar los datos aleatorios y RDD a ejecutores en buen estado. La duración antes de la preferencia final suele ser de entre 30 segundos y 2 minutos en función del proveedor de nube.

Databricks recomienda habilitar la migración de datos cuando la retirada también está habilitada. Por lo general, la posibilidad de errores disminuye a medida que se migran más datos, incluidos los errores de captura aleatoria, la pérdida de datos aleatorios y la pérdida de datos RDD. La migración de datos también puede provocar que no se repitan cálculos y que se ahorren costes.

Nota:

La retirada es el mejor esfuerzo y no garantiza que todos los datos se puedan migrar antes de la preferencia final. La retirada no es una garantía frente a los errores de captura aleatoria cuando las tareas en ejecución de flujo capturan datos aleatorios del ejecutor.

Con la retirada habilitada, los errores de tareas causados por la preferencia de la instancia de acceso puntual no se agregan al número total de intentos con error. Los errores de tarea causados por la preferencia no se cuentan como intentos con error debido a que su causa es externa a la tarea y generará un error en el trabajo.

Habilitar el desmantelamiento

Para habilitar la retirada en un proceso, escriba las siguientes propiedades en la pestaña Spark en Opciones avanzadas en la interfaz de usuario de configuración de proceso. Para obtener información sobre estas propiedades, consulte Configuración de Spark.

  • Para habilitar el desmantelamiento de aplicaciones, introduzca esta propiedad en el campo Configurar Spark:

    spark.decommission.enabled true
    
  • Para habilitar la migración aleatoria de datos durante el desmantelamiento, introduzca esta propiedad en el campo Configurar Spark:

    spark.storage.decommission.enabled true
    spark.storage.decommission.shuffleBlocks.enabled true
    
  • Para habilitar la migración de datos de caché RDD durante el desmantelamiento, introduzca esta propiedad en el campo Spark config:

    spark.storage.decommission.enabled true
    spark.storage.decommission.rddBlocks.enabled true
    

    Nota:

    Cuando la réplica de StorageLevel de RDD establecida es superior a 1, Databricks no recomienda habilitar la migración de datos RDD, ya que las réplicas garantizan que los RDD no pierdan datos.

  • Para habilitar el desmantelamiento para los trabajadores, introduzca esta propiedad en el campo Variables de entorno:

    SPARK_WORKER_OPTS="-Dspark.decommission.enabled=true"
    

Ver el estado de desmantelamiento y el motivo de la pérdida en la interfaz de usuario

Para acceder al estado de retirada de un trabajo desde la interfaz de usuario, vaya a la pestaña Interfaz de usuario de proceso de Spark: maestro.

Cuando finalice la retirada, puede ver el motivo de pérdida del ejecutor en la Interfaz de usuario de Spark en la pestaña>Ejecutores en la página de detalles del proceso.