Supervisa y soluciona problemas de cargas de trabajo de Dataproc Serverless

Puedes supervisar y solucionar problemas de Dataproc Serverless para cargas de trabajo por lotes de Spark con la información y las herramientas que se analizan en las siguientes secciones.

Servidor de historial persistente

Dataproc Serverless para Spark crea los recursos de procesamiento necesarios para ejecutar una carga de trabajo, ejecuta la carga de trabajo en esos recursos y, luego, borra los recursos cuando finaliza la carga de trabajo. Las métricas y los eventos de las cargas de trabajo no se conservan después de que se completa una carga de trabajo. Sin embargo, puedes usar un servidor de historial persistente (PHS) para conservar el historial de la aplicación de la carga de trabajo (registros de eventos) en Cloud Storage.

Para usar un PHS con una carga de trabajo por lotes, haz lo siguiente:

  1. Crea un servidor de historial persistente (PHS) de Dataproc.

  2. Especifica tu PHS cuando envíes una carga de trabajo.

  3. Usa la puerta de enlace del componente para conectarte al PHS y ver los detalles de la aplicación, las etapas del programador, los detalles a nivel de la tarea y la información del entorno y del ejecutor.

Dataproc Serverless para registros de Spark

El registro está habilitado de forma predeterminada en Dataproc Serverless para Spark, y los registros de cargas de trabajo persisten después de que finaliza una carga de trabajo. Dataproc Serverless para Spark recopila registros de cargas de trabajo en Cloud Logging. Puedes acceder a los registros spark, agent, output y container de las cargas de trabajo en el recurso Cloud Dataproc Batch del Explorador de registros.

Ejemplo por lotes de Dataproc Serverless para Spark:

Ejemplo de selección de lotes en el Explorador de métricas.

Para obtener más información, consulta Registros de Dataproc.

Registros de auditoría de Dataproc Serverless

Para obtener información sobre los registros de auditoría de Dataproc Serverless, consulta Registros de auditoría de Dataproc.

Métricas de cargas de trabajo

De forma predeterminada, Dataproc Serverless para Spark habilita la recopilación de métricas de Spark disponibles, a menos que uses propiedades de recopilación de métricas de Spark para inhabilitar o anular la recopilación de una o más métricas de Spark.

Puedes ver las métricas de las cargas de trabajo en el Explorador de métricas o en la página Detalles del lote de la consola de Google Cloud.

Métricas por lotes

Las métricas de recursos batch de Dataproc proporcionan estadísticas sobre los recursos por lotes, como la cantidad de ejecutores por lotes. Las métricas por lotes tienen el prefijo dataproc.googleapis.com/batch.

Ejemplo de la métrica Batch en el Explorador de métricas.

Métricas de Spark

Las métricas de Spark disponibles incluyen las métricas del controlador y del ejecutor de Spark, y las métricas del sistema. Las métricas de Spark disponibles tienen el prefijo custom.googleapis.com/.

Ejemplo de la métrica de Spark en el Explorador de métricas

Configura alertas de métricas

Puedes crear alertas de métricas de Dataproc para recibir avisos de problemas de cargas de trabajo.

Crea gráficos

Puedes crear gráficos en los que se visualicen las métricas de las cargas de trabajo mediante el Explorador de métricas en la consola de Google Cloud. Por ejemplo, puedes crear un gráfico para mostrar disk:bytes_used y, luego, filtrar por batch_id.

Cloud Monitoring

Monitoring usa metadatos y métricas de las cargas de trabajo para proporcionar estadísticas sobre el estado y el rendimiento de Dataproc Serverless para las cargas de trabajo de Spark. Las métricas de carga de trabajo incluyen métricas de Spark, métricas por lotes y métricas de operación.

Puedes usar Cloud Monitoring en la consola de Google Cloud para explorar métricas, agregar gráficos, crear paneles y alertas.

Crea paneles

Puedes crear un panel para supervisar las cargas de trabajo mediante métricas de varios proyectos y diferentes productos de Google Cloud. Para obtener más información, consulta Crea y administra paneles personalizados.

Solución de problemas avanzada (versión preliminar)

En esta sección, se describen las funciones avanzadas de solución de problemas (Vista previa) que están disponibles en la consola de Google Cloud. Estas funciones incluyen la solución de problemas asistida por Gemini para Dataproc Serverless, que es parte de la oferta de Gemini en BigQuery.

Accede a funciones de vista previa

Si quieres registrarte en la versión preliminar de las funciones avanzadas de solución de problemas, completa y envía el formulario de Registro de la fase previa a la DG de BigQuery. Una vez que se apruebe el formulario, los proyectos que figuren en él tendrán acceso a las funciones de vista previa.

Vista previa de precios

No se aplican cargos adicionales por participar en la vista previa. Se aplicarán cargos a las siguientes funciones de versión preliminar cuando estén disponibles de manera general (DG):

La notificación anticipada de los cargos de DG se enviará a la dirección de correo electrónico que proporcionaste en el formulario de registro de vista previa.

Requisitos sobre las características

  • Registro: Debes registrarte para acceder a la función.

  • Permiso: Debes tener el permiso dataproc.batches.analyze.

    gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \
    --add-permissions="dataproc.batches.analyze"
    
  • Habilitar la solución de problemas asistida por Gemini para Dataproc Serverless: Habilitas la solución de problemas asistida por Gemini para Dataproc Serverless cuando envías cada carga de trabajo recurrente por lotes de Spark con la consola de Google Cloud, gcloud CLI o la API de Dataproc. Una vez que esta función se habilita en una carga de trabajo por lotes recurrente, Dataproc almacena una copia de los registros de la carga de trabajo durante 30 días y usa los datos de registro guardados para proporcionar la solución de problemas asistida por Gemini para la carga de trabajo. Si deseas obtener información sobre el contenido de los registros de carga de trabajo de Spark, consulta Dataproc Serverless para registros de Spark.

Consola

Realiza los siguientes pasos para habilitar la solución de problemas asistida por Gemini en cada carga de trabajo recurrente de Spark por lotes:

  1. En la consola de Google Cloud, ve a la página Lotes de Dataproc.

    Ir a Lotes de Dataproc

  2. Para crear una carga de trabajo por lotes, haz clic en Crear.

  3. En la sección Contenedor, completa el nombre de la Cohorte, que identifica el lote como una de una serie de cargas de trabajo recurrentes. El análisis asistido por Gemini se aplica a la segunda carga de trabajo y las posteriores que se envían con este nombre de cohorte. Por ejemplo, especifica TPCH-Query1 como el nombre de la cohorte de una carga de trabajo programada que ejecuta una consulta diaria de TPC-H.

  4. Completa otras secciones de la página Crear lote según sea necesario y, luego, haz clic en Enviar. Para obtener más información, consulta Envía una carga de trabajo por lotes.

gcloud

Ejecuta el siguiente comando gcloud dataproc batches submit de gcloud CLI de forma local en una ventana de terminal o en Cloud Shell para habilitar la solución de problemas asistida por Gemini en cada carga de trabajo recurrente por lotes de Spark:

gcloud dataproc batches submit COMMAND \
    --region=REGION \
    --cohort=COHORT \
    other arguments ...

Reemplaza lo siguiente:

  • COMMAND: Es el tipo de carga de trabajo de Spark, como Spark, PySpark, Spark-Sql o Spark-R.
  • REGION: Es la región en la que se ejecutará tu carga de trabajo.
  • COHORT: Es el nombre de la cohorte, que identifica el lote como una de una serie de cargas de trabajo recurrentes. El análisis asistido por Gemini se aplica a la segunda carga de trabajo y las posteriores que se envían con este nombre de cohorte. Por ejemplo, especifica TPCH Query 1 como el nombre de la cohorte de una carga de trabajo programada que ejecuta una consulta diaria de TPC-H.

API

Incluye el nombre RuntimeConfig.cohort en una solicitud batches.create para habilitar la solución de problemas asistida por Gemini en cada carga de trabajo recurrente por lotes de Spark. El análisis asistido por Gemini se aplica a la segunda carga de trabajo y las posteriores que se envían con este nombre de cohorte. Por ejemplo, especifica TPCH-Query1 como el nombre de la cohorte para una carga de trabajo programada que ejecuta una consulta diaria de TPC-H.

Ejemplo:

...
runtimeConfig:
  cohort: TPCH-Query1
...

Solución de problemas asistida por Gemini para Dataproc Serverless

Las siguientes funciones de vista previa para la solución de problemas asistidas por Gemini están disponibles en las páginas de listas Batch details y Batches en la consola de Google Cloud.

  • Pestaña Investigar: La pestaña Investigar de la página Detalles del lote proporciona una sección Descripción general del estado (Vista previa) con los siguientes paneles de solución de problemas asistidos por Gemini:

    • ¿Qué recibió autotune? Si habilitaste el ajuste automático en una o más cargas de trabajo, este panel muestra los cambios de ajuste automático más recientes que se aplicaron a las cargas de trabajo en ejecución, completadas y con errores.

    Panel de investigación de ajuste automático.

    • ¿Qué está sucediendo ahora? y ¿Qué puedo hacer al respecto? Haz clic en Pedir a Gemini para solicitar recomendaciones que te ayuden a corregir las cargas de trabajo con errores o a mejorar las cargas de trabajo exitosas pero lentas.

    Botón Pregúntale a Gemini.

    Si haces clic en Preguntar a Gemini, Gemini para Google Cloud genera un resumen de los errores, las anomalías o los aspectos destacados de los registros de cargas de trabajo, las métricas de Spark y los eventos de Spark. Gemini para Google Cloud también puede mostrar una lista de pasos recomendados que puedes seguir para corregir una carga de trabajo con errores o mejorar el rendimiento de una carga de trabajo exitosa pero lenta.

    Estadísticas generadas por Gemini para Google Cloud.

  • Columnas de solución de problemas asistidas por Gemini: Como parte de la versión preliminar, la página de lista de Batches de Dataproc en la consola de Google Cloud incluye las columnas What was Autotuned, What is happening now? y What can I do about it?.

    Los lotes enumeran las columnas de Gemini.

    El botón Preguntar a Gemini se muestra y se habilita solo si un lote completado tiene el estado Failed, Cancelled o Succeeded. Si haces clic en Preguntar a Gemini, Gemini para Google Cloud generará un resumen de los errores, las anomalías o los aspectos destacados de los registros de cargas de trabajo, las métricas de Spark y los eventos de Spark. Gemini para Google Cloud también puede mostrar una lista de pasos recomendados que puedes seguir para corregir una carga de trabajo con errores o mejorar el rendimiento de una carga de trabajo exitosa pero lenta.

Aspectos destacados de las métricas por lotes

Como parte de la versión preliminar, la página Detalles del lote de la consola de Google Cloud incluye gráficos que muestran valores importantes de métricas de cargas de trabajo por lotes. Los gráficos de las métricas se propagan con valores una vez que se completa el lote.

Panel de métricas de Batch.

Tabla de métricas

En la siguiente tabla, se enumeran las métricas de carga de trabajo de Spark que se muestran en la página Detalles del lote de la consola de Google Cloud y se describe cómo los valores de las métricas pueden proporcionar estadísticas sobre el estado y el rendimiento de las cargas de trabajo.

Métrica ¿Qué muestra?
Métricas a nivel del ejecutor
Proporción entre el tiempo de GC de JVM y el tiempo de ejecución Esta métrica muestra la proporción entre el tiempo de GC (recolección de elementos no utilizados) de JVM y el tiempo de ejecución por ejecutor. Las proporciones altas pueden indicar fugas de memoria en las tareas que se ejecutan en ejecutores específicos o estructuras de datos ineficientes, lo que puede llevar a una alta deserción de objetos.
Bytes de disco volcados Esta métrica muestra la cantidad total de bytes de disco volcados en diferentes ejecutores. Si un ejecutor muestra muchos bytes de disco volcados, esto puede indicar un sesgo de datos. Si la métrica aumenta con el tiempo, esto puede indicar que hay etapas con presión o fugas de memoria.
Bytes leídos y escritos En esta métrica, se muestran los bytes escritos frente a los bytes leídos por ejecutor. Las grandes discrepancias en los bytes leídos o escritos pueden indicar situaciones en las que las uniones replicadas conducen a la amplificación de datos en ejecutores específicos.
Registros leídos y escritos Esta métrica muestra los registros leídos y escritos por ejecutor. La lectura de registros de números grandes con cantidades bajas de registros escritos puede indicar un cuello de botella en la lógica de procesamiento en ejecutores específicos, lo que lleva a que los registros se lean mientras se espera. Los ejecutores que se retrasan de forma constante en las lecturas y escrituras pueden indicar una contención de recursos en esos nodos o ineficiencias de código específicas del ejecutor.
Proporción del tiempo de escritura de Shuffle y el tiempo de ejecución La métrica muestra la cantidad de tiempo que el ejecutor dedicó al entorno de ejecución de Shuffle en comparación con el tiempo de ejecución general. Si este valor es alto para algunos ejecutores, puede indicar un sesgo de datos o una serialización de datos ineficiente. Puedes identificar etapas con tiempos de escritura aleatorios largos en la IU de Spark. Busca tareas con valores atípicos dentro de esas etapas que tarden más que el tiempo promedio en completarse. Verifica si los ejecutores con tiempos de escritura aleatorios también muestran una actividad alta de E/S del disco. Una serialización más eficiente y pasos de partición adicionales pueden ayudar. Las escrituras de registro muy grandes en comparación con las lecturas de registros pueden indicar una duplicación de datos no deseada debido a uniones ineficientes o transformaciones incorrectas.
Métricas a nivel de la aplicación
Progreso de etapas Esta métrica muestra la cantidad de etapas en etapas con errores, en espera y en ejecución. Una gran cantidad de etapas con errores o en espera puede indicar un sesgo en los datos. Verifica las particiones de datos y depura el motivo de la falla de la etapa con la pestaña Etapas en la IU de Spark.
Ejecutores de Spark por lotes En esta métrica, se muestra la cantidad de ejecutores que podrían ser necesarios en comparación con la cantidad de ejecutores que se ejecutan. Una gran diferencia entre los ejecutores requeridos y en ejecución puede indicar problemas de ajuste de escala automático.
Métricas a nivel de la VM
Memoria usada Esta métrica muestra el porcentaje de memoria de VM en uso. Si el porcentaje principal es alto, puede indicar que el controlador está bajo presión de memoria. Para otros nodos de VM, un porcentaje alto puede indicar que los ejecutores se están quedando sin memoria, lo que puede provocar un gran derrame de discos y un tiempo de ejecución de carga de trabajo más lento. Usar la IU de Spark para analizar los ejecutores y comprobar si el tiempo de GC es alto y las tareas fallidas. También puedes depurar el código de Spark para almacenar conjuntos de datos grandes y transmisiones innecesarias de variables.

Registros de trabajos

Como parte de la versión preliminar, en la página Detalles del lote de la consola de Google Cloud, se enumeran los registros de trabajos (carga de trabajo por lotes). Los registros incluyen advertencias y errores filtrados del resultado de la carga de trabajo. Puedes seleccionar la Gravedad del registro, agregar un Filtro y hacer clic en el ícono Ver en el Explorador de registros para abrir los registros por lotes seleccionados en el Explorador de registros.

Ejemplo: El Explorador de registros se abre después de elegir Errors en el selector de gravedad de la página Detalles del lote en la consola de Google Cloud.

Explorador de registros por lotes.

IU de Spark (versión preliminar)

Si inscribiste tu proyecto en la función de vista previa de la IU de Spark, puedes ver la IU de Spark en la consola de Google Cloud sin tener que crear un clúster de PHS (servidor de historial persistente) de Dataproc. La IU de Spark recopila los detalles de ejecución de Spark de las cargas de trabajo por lotes. Para obtener más información, consulta la Guía del usuario distribuida a los clientes inscritos como parte de la versión preliminar de la IU de Spark.