Puedes supervisar Dataproc Serverless y solucionar problemas relacionados con las cargas de trabajo por lotes de Spark mediante la información y las herramientas que se analizan en las siguientes secciones.
Servidor de historial persistente
Dataproc Serverless for Spark crea los recursos de procesamiento necesarios para ejecutar una carga de trabajo, la ejecuta en esos recursos y, luego, los borra 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:
Crea un servidor de historial persistente (PHS) de Dataproc.
Especifica tu PHS cuando envíes una carga de trabajo.
Usa la puerta de enlace de componentes para conectarte al PHS y ver los detalles de la aplicación, las etapas del programador, los detalles del nivel de la tarea y la información del entorno y del ejecutor.
Registros de Dataproc Serverless para Spark
El registro está habilitado de forma predeterminada en Dataproc Serverless para Spark, y los registros de cargas de trabajo se conservan 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:
Para obtener más información, consulta Registros 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 las 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 la página Detalles del lote en 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
.
Métricas de Spark
Las métricas de Spark disponibles incluyen las métricas del controlador y del ejecutor de Spark, además de las métricas del sistema. Las métricas de Spark disponibles tienen el prefijo custom.googleapis.com/
.
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 que visualicen las métricas de las cargas de trabajo con 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 a fin de proporcionar estadísticas sobre el estado y el rendimiento de las cargas de trabajo de Dataproc Serverless para Spark. Las métricas de las cargas de trabajo incluyen las métricas de Spark, las métricas por lotes y las métricas de operación.
Puedes usar Cloud Monitoring en la consola de Google Cloud para explorar métricas, agregar gráficos y crear paneles y alertas.
Crear paneles
Puedes crear un panel para supervisar las cargas de trabajo mediante métricas de varios proyectos y productos de Google Cloud. Para obtener más información, consulta Crea y administra paneles personalizados.
Solución de problemas avanzada (vista previa)
En esta sección, se abordan las funciones avanzadas de vista previa de solución de problemas disponibles en la consola de Google Cloud, que incluyen la solución de problemas con asistencia de Gemini para Dataproc Serverless, que forma parte de la oferta de Gemini en BigQuery.
Acceso a funciones preliminares
Si quieres registrarte para la versión preliminar de las funciones avanzadas de solución de problemas, completa y envía el formulario Gemini in BigQuery Preview. Una vez que se apruebe el formulario, los proyectos enumerados en él tendrán acceso a funciones de vista previa.
Vista previa de los precios
No se aplican cargos adicionales por participar en la versión preliminar. Se aplicarán cargos a las siguientes funciones de versión preliminar cuando comiencen a tener disponibilidad general (DG):
- Solución de problemas con asistencia de Gemini para Dataproc Serverless
- Aspectos destacados de las métricas por lotes
- Registros de trabajos
Se enviará un aviso anticipado de los cargos de Google Analytics a la dirección de correo electrónico que proporciones 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
.Si tienes el rol predefinido
roles/dataproc.admin
,roles/dataproc.editor
oroles/dataproc.viewer
, tienes el permiso necesario. No es necesario realizar ninguna otra acción.Si usas una función personalizada para acceder a los servicios de Dataproc, esta debe tener el permiso
dataproc.batches.analyze
. Puedes usar gcloud CLI para agregar el permiso, como se muestra en el siguiente comando, que agrega el permiso a nivel de proyecto:
gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \ --add-permissions="dataproc.batches.analyze"
Habilita la solución de problemas asistida por Gemini para Dataproc Serverless: Debes habilitar la solución de problemas con asistencia de Gemini para Dataproc Serverless cuando envíes 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 una solución de problemas asistida por Gemini para la carga de trabajo. Si deseas obtener información sobre el contenido de los registros de la carga de trabajo de Spark, consulta Registros de Dataproc Serverless para Spark.
Console
Sigue estos pasos para habilitar la solución de problemas asistida por Gemini en cada carga de trabajo por lotes recurrente de Spark:
En la consola de Google Cloud, ve a la página Lotes de Dataproc.
Para crear una carga de trabajo por lotes, haz clic en Crear.
En la sección Contenedor, completa el nombre de la Cohorte, que identifica el lote como uno de una serie de cargas de trabajo recurrentes. El análisis asistido de Gemini se aplica a la segunda carga de trabajo y a 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 de TPC-H diaria.Completa las 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 la siguiente gcloud CLI
gcloud dataproc batches submit
localmente en una ventana de terminal o en Cloud Shell
para habilitar la solución de problemas con asistencia de Gemini en cada carga de trabajo recurrente de Spark por lotes:
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
oSpark-R
. - REGION: Es la región en la que se ejecutará la carga de trabajo.
- COHORT: Es el nombre de la cohorte, que identifica el lote como uno de una serie de cargas de trabajo recurrentes.
El análisis asistido de Gemini se aplica a la segunda carga de trabajo y a las posteriores que se envían
con este nombre de cohorte. Por ejemplo, especifica
TPCH Query 1
como el nombre de la cohorte para una carga de trabajo programada que ejecuta una consulta de TPC-H diaria.
API
Incluye el nombre RuntimeConfig.cohort
en una solicitud batches.create para habilitar la solución de problemas con asistencia de Gemini en cada carga de trabajo recurrente por lotes de Spark. El análisis asistido de Gemini se aplica a la segunda carga de trabajo y a las posteriores que se envíen 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 de TPC-H diaria.
Ejemplo:
...
runtimeConfig:
cohort: TPCH-Query1
...
Solución de problemas con asistencia de Gemini para Dataproc Serverless
Las siguientes funciones de vista previa con asistencia de Gemini están disponibles en las páginas de listas Detalles del lote y Lotes en la consola de Google Cloud.
Pestaña Investigate: La pestaña Investigar en 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 con asistencia de Gemini:
- ¿Qué se ajustó automáticamente? 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 cargas de trabajo en ejecución, completadas y con errores.
- ¿Qué está sucediendo ahora? y ¿Qué puedo hacer al respecto? Haz clic en Ask Gemini para solicitar recomendaciones que ayuden a corregir las cargas de trabajo con errores o mejorar las cargas de trabajo exitosas pero lentas.
Si haces clic en Ask Gemini, esta herramienta genera un resumen de los errores, anomalías o aspectos destacados de los registros de cargas de trabajo, las métricas y los eventos de Spark. Gemini 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 correcta pero lenta.
Columnas de solución de problemas con asistencia de 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?
yWhat can I do about it?
.El botón Ask Gemini se muestra y habilita solo si un lote completado está en estado
Failed
,Cancelled
oSucceeded
. Si haces clic en Ask Gemini, esta herramienta genera un resumen de los errores, anomalías o aspectos destacados de los registros de cargas de trabajo, las métricas y los eventos de Spark. Gemini 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 correcta pero lenta.
Aspectos destacados de las métricas por lotes
Como parte de la versión preliminar, la página Detalles por lotes en la consola de Google Cloud incluye gráficos que muestran valores importantes de las métricas de las cargas de trabajo por lotes. Los gráficos de métricas se propagan con valores después de que se completa el lote.
En la siguiente tabla, se enumeran las métricas de las cargas 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 del tiempo de GC de JVM al entorno de ejecución | Esta métrica muestra la proporción entre el tiempo de GC (recolección de elementos no utilizados) de JVM en relación con el tiempo de ejecución por ejecutor. Las proporciones altas pueden indicar fugas de memoria en tareas que se ejecutan en ejecutores particulares o estructuras de datos ineficientes, lo que puede provocar una gran deserción de objetos. |
Bytes de disco volcados | Esta métrica muestra la cantidad total de bytes de disco volcados entre diferentes ejecutores. Si un ejecutor muestra muchos bytes de disco volcados, esto puede indicar sesgo de datos. Si la métrica aumenta con el tiempo, esto puede indicar que hay etapas con presión de memoria 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 registros leídos y escritos por ejecutor. La lectura de registros de números grandes con una cantidad baja de registros escritos puede indicar un cuello de botella en la lógica de procesamiento en ejecutores específicos, lo que hace que los registros se lean mientras se espera. Los ejecutores que se retrasan de manera constante en las lecturas y escrituras pueden indicar contención de recursos en esos nodos o ineficiencias de código específicas del ejecutor. |
Proporción del tiempo de escritura aleatoria en el tiempo de ejecución | La métrica muestra la cantidad de tiempo que el ejecutor dedicó al tiempo de ejecución aleatorio 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 largos de escritura aleatorios en la IU de Spark. Busca tareas atípicas dentro de esas etapas que tarden más que el tiempo promedio en completarse. Verifica si los ejecutores con tiempos de escritura aleatorios altos también muestran actividad de E/S de disco alta. Una serialización más eficiente y pasos de partición adicionales pueden ayudar. Las escrituras de registros muy grandes en comparación con las lecturas de registros pueden indicar una duplicación involuntaria de datos debido a uniones ineficientes o transformaciones incorrectas. |
Métricas a nivel de la aplicación | |
Progresión por 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 el sesgo de los datos. Verifica las particiones de datos y depura el motivo de la falla de la etapa con la pestaña Etapas de 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 obligatorios 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 la VM en uso. Si el porcentaje de instancia 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 derrame de disco alto y un tiempo de ejecución de la carga de trabajo más lento. Usa la IU de Spark para analizar ejecutores y verificar si hay tiempos de recolección de elementos no utilizados y fallas altas en las tareas. También depurar el código de Spark para el almacenamiento en caché de grandes conjuntos de datos y la transmisión innecesaria de variables |
Registros de trabajos
Como parte de la versión preliminar, la página Detalles por lotes en la consola de Google Cloud muestra una lista de los registros de trabajos (carga de trabajo por lotes). Los registros incluyen advertencias y errores filtrados de los resultados de las cargas de trabajo y de Spark. Puedes seleccionar la Gravedad del registro, agregar un Filtro y, luego, 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 en la página Detalles del lote en la consola de Google Cloud.
IU de Spark (vista previa)
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 Dataproc PHS (Servidor de historial persistente). 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 que se distribuye a los clientes inscritos como parte de la versión preliminar de la IU de Spark.