Puedes supervisar y solucionar problemas de Dataproc Serverless 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 a fin de ejecutar una carga de trabajo. ejecuta la carga de trabajo en esos recursos y, luego, borra los recursos cuando esta finaliza. Las métricas y los eventos de la carga de trabajo no persisten después de que se completa. Sin embargo, puedes usar un Servidor de historial persistente (PHS) para conservar el historial de la aplicación de la carga de trabajo (evento registros) 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 conectarse al PHS para ver los detalles de la aplicación, las etapas del programador, los detalles a nivel de la tarea y 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 persisten después de un
finaliza la carga de trabajo. Dataproc Serverless para Spark recopila registros de cargas de trabajo en Cloud Logging.
Puedes acceder a Dataproc Serverless para registros de Spark en la
Recurso Cloud Dataproc Batch
en el Explorador de registros.
Consulta los registros de Dataproc Serverless para Spark
El Explorador de registros de la consola de Google Cloud un panel de consulta que te ayudarán a crear una consulta para examinar los registros de cargas de trabajo por lotes. Sigue estos pasos para crear una consulta y examinar la carga de trabajo por lotes registros:
- Se seleccionó tu proyecto actual. Puedes hacer clic en Define mejor el proyecto para seleccionar un proyecto diferente.
Define una consulta de registros por lotes.
Usa los menús de filtros para filtrar una carga de trabajo por lotes.
En Todos los recursos, selecciona el recurso Lote de Cloud Dataproc.
En el panel Seleccionar recurso, selecciona el lote LOCATION y, luego, ID POR LOTES: Estos parámetros de lote se enumeran en el Lotes de Dataproc en la consola de Google Cloud.
Haz clic en Aplicar.
En Seleccionar nombres de registro. ingresa
dataproc.googleapis.com
en el cuadro Buscar nombres de registro para limitar los tipos de registros que se consultarán. Seleccionar uno o más de los nombres de los archivos de registro de la lista.
Usa el editor de consultas para filtrar registros específicos de la VM.
Especifica el tipo de recurso y el nombre del recurso de VM, como se muestra en el siguiente ejemplo:
Notas:resource.type="cloud_dataproc_batch" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
- BATCH_UUID: El UUID por lotes aparece en los detalles del lote. en la consola de Google Cloud, que se abre cuando haces clic en ID de lotes en la página Lotes
Los registros por lotes también incluyen el UUID por lotes en el nombre del recurso de la VM. A continuación, se muestra un ejemplo de un controlador por lotes.log:
Haz clic en Ejecutar consulta.
Dataproc Serverless para tipos de registros y consultas de muestra de Spark
En la siguiente lista, se describen diferentes tipos de registros de Dataproc Serverless y proporciona consultas de muestra del Explorador de registros para cada tipo de registro.
dataproc.googleapis.com/output
: Este archivo de registro contiene el resultado de la carga de trabajo por lotes. Dataproc Serverless para Spark transmite resultados por lotes al espacio de nombresoutput
. y establece el nombre del archivo enJOB_ID.driver.log
.Consulta de muestra del Explorador de registros para registros de salida:
resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Foutput"
dataproc.googleapis.com/spark
: El espacio de nombresspark
agrega Spark registros para daemons y ejecutores que se ejecutan en Dataproc la instancia principal del clúster y las VMs de trabajador. Cada entrada de registro incluye un Etiqueta de componentemaster
,worker
oexecutor
para identificar la fuente del archivo de registro, como se muestra a continuación:executor
: Registros de ejecutores de código de usuario Por lo general, estos son registros distribuidos.master
: Registros de la instancia principal del administrador de recursos independiente de Spark, que son similar a Dataproc en YARN de Compute EngineResourceManager
registros.worker
: registros del trabajador independiente del administrador de recursos de Spark. que son similares a Dataproc en YARN de Compute EngineNodeManager
registros.
Consulta de muestra del Explorador de registros para todos los registros en el espacio de nombres
spark
:resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fspark"
Consulta de muestra del Explorador de registros para los registros de componentes independientes de Spark en el espacio de nombres
spark
:resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fspark" jsonPayload.component="COMPONENT"
dataproc.googleapis.com/startup
: El espacio de nombresstartup
incluye los registros de inicio por lotes (clúster). Todos los registros de secuencias de comandos de inicialización incluidos. Los componentes se identifican por etiqueta, por ejemplo: Consulta de muestra del Explorador de registros para registros de inicio de registros en una VM especificada:startup-script[855]: ... activate-component-spark[3050]: ... enable spark-worker
resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fstartup" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
dataproc.googleapis.com/agent
: agrega el espacio de nombresagent
. registros del agente de Dataproc. Cada entrada de registro incluye la etiqueta del nombre del archivo que identifica la fuente del registro.Consulta de muestra del Explorador de registros para registros de agentes generados por una VM de trabajador especificada:
resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fagent" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCHUUID-wWORKER#"
dataproc.googleapis.com/autoscaler
: agrega el espacio de nombresautoscaler
. Dataproc Serverless para registros del escalador automático de Spark.Consulta de muestra del Explorador de registros para registros de agentes generados por una VM de trabajador especificada:
resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fautoscaler" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCHUUID-wWORKER#"
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 utilices 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 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 de lotes tienen el prefijo dataproc.googleapis.com/batch
.
Métricas de Spark
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 prefijo
con custom.googleapis.com/
.
Configura alertas de métricas
Puedes crear alertas de métricas de Dataproc para recibir avisos sobre problemas con las cargas de trabajo.
Crea gráficos
Puedes crear gráficos que visualizan las métricas de las cargas de trabajo con el
Explorador de métricas
Consola de Google Cloud Por ejemplo, puedes
Crea un gráfico para mostrar disk:bytes_used
y, luego, filtra por batch_id
.
Cloud Monitoring
La supervisión usa metadatos y métricas de cargas de trabajo para proporcionar estadísticas sobre el estado y el rendimiento de Dataproc sin servidores para 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 cargas de trabajo con 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 describe la solución avanzada de problemas características (Vista previa) que se disponibles en la consola de Google Cloud. Estas funciones incluyen la solución de problemas asistida por Gemini para Dataproc Serverless, que forma parte de la oferta de Gemini en BigQuery.
Accede a funciones de vista previa
Si quieres registrarte para la versión preliminar de funciones avanzadas de solución de problemas, completa y envía la Registro en Gemini in BigQuery en la fase previa a la DG formulario. Una vez que se apruebe el formulario, los proyectos que se enumeren en él tendrán acceso a las funciones en versión preliminar.
Vista previa de precios
No se cobra ningún cargo adicional por participar en la vista previa. Se aplicarán cargos a las siguientes funciones de versión preliminar cuando tengan disponibilidad general (DG):
- Solución de problemas asistida por Gemini para Dataproc sin servidores
- Aspectos destacados de las métricas por lotes
- Registros de trabajos
El aviso anticipado de los cargos de GA se enviará a la dirección de correo electrónico que proporciones en el formulario de registro de la versión preliminar.
Requisitos sobre las características
Registro: Debes registrarte para acceder a la función.
Permiso: Debes tener el permiso
dataproc.batches.analyze
.Si tienes la configuración
roles/dataproc.admin
,roles/dataproc.editor
oroles/dataproc.viewer
tienes el permiso necesario. No es necesario realizar ninguna otra acción.Si usas un rol personalizado para acceder a los servicios de Dataproc, este 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 en el a nivel de proyecto:
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 solución de problemas para Dataproc Serverless cuando envías cada carga de trabajo recurrente de Spark por lotes mediante el La consola de Google Cloud, gcloud CLI o Dataproc API de gcloud. 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. Para obtener información sobre el contenido del registro de cargas de trabajo de Spark, consulta Dataproc sin servidores para registros de Spark.
Console
Sigue estos pasos para habilitar la solución de problemas asistida por Gemini en cada Carga de trabajo recurrente de Spark por lotes:
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 Cohorda, 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 para una carga de trabajo programada que ejecuta una consulta TPC-H diaria.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 la siguiente gcloud CLI
gcloud dataproc batches submit
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
oSpark-R
. - REGION: el región en la que se ejecutará tu carga de trabajo.
- COHORT: Es el nombre de la cohorte, que
identifica el lote como parte de una serie de cargas de trabajo recurrentes.
El análisis asistido por Gemini se aplica a la segunda carga de trabajo y las siguientes que se envían.
por el nombre de esta 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.
API
Incluye el RuntimeConfig.cohort
en un archivo batches.create
solicitud para habilitar la solución de problemas asistida por Gemini en cada Spark recurrente
carga de trabajo por lotes. El análisis asistido por Gemini se aplica a la segunda carga de trabajo y las posteriores que se envían.
por el nombre de esta cohorte. Por ejemplo, especifica TPCH-Query1
como nombre de la cohorte.
para una carga de trabajo programada que ejecuta
Consulta de TPC-H.
Ejemplo:
...
runtimeConfig:
cohort: TPCH-Query1
...
Solución de problemas asistida por Gemini para Dataproc Serverless
Las siguientes funciones de versión preliminar para solucionar problemas asistidas por Gemini están disponibles en Páginas de lista de Lotes y Detalles del lote en la consola de Google Cloud.
Pestaña Investigar: La pestaña Investigar de la página Detalles del lote. proporciona una sección de resumen del estado (vista previa) con los siguientes elementos: Paneles de solución de problemas asistidos por Gemini:
- ¿Qué recibió autotune? Si ajuste automático habilitado en una o más cargas de trabajo, este panel muestra los cambios de ajuste se aplican a cargas de trabajo en ejecución, completadas y con errores.
- ¿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 mejorar las cargas de trabajo exitosas pero lentas.
Si haces clic en Preguntar a Gemini, Gemini para Google Cloud genera un resumen de los errores. anomalías o aspectos destacados de registros de cargas de trabajo, métricas de Spark y eventos de Spark. Gemini para Google Cloud también puede mostrar una lista de pasos recomendados que puedes seguir para solucionar problemas o mejorar el rendimiento de una carga de trabajo exitosa pero lenta.
Columnas de solución de problemas asistidas por Gemini: Como parte de la de la versión preliminar, la página de la lista de Batches de Dataproc en la La consola de Google Cloud incluye
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 un estado
Failed
,Cancelled
oSucceeded
. 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 las 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 solucionar problemas 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. La métrica los gráficos se propagan con valores después de que se completa el lote.
La siguiente tabla enumera las métricas de la carga de trabajo de Spark que se muestran en el En la página Detalles del lote de la consola de Google Cloud, se describe cómo las métricas de las cargas de trabajo puede brindar estadísticas sobre el estado y 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 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 los registros leídos y escritos por ejecutor. Las operaciones de lectura de registros de números grandes con cantidades bajas de registros escritos pueden 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 tienen retrasos constantes en las operaciones de lectura y escritura 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 pasó en el tiempo 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 podrían ser útiles. 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 las fases de error, espera y ejecución. Una gran cantidad de etapas con errores o en espera puede indicar un sesgo en los datos. Verifica si hay 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 | Esta métrica muestra la cantidad de ejecutores que podrían ser necesarios en comparación con la cantidad de ejecutores en ejecución. Una gran diferencia entre los ejecutores requeridos y en ejecución pueden 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. En el caso de otros nodos de VM, un porcentaje alto puede indicar que los ejecutores se están quedando sin memoria, lo que puede provocar un alto desbordamiento de disco y un tiempo de ejecución de la carga de trabajo más lento. Usa la IU de Spark para analizar los ejecutores y verificar si hay un tiempo de GC alto y fallas de tareas altas. También depura el código de Spark para la caché de conjuntos de datos grandes y la transmisión innecesaria de variables. |
Registros del trabajo
Como parte de la versión preliminar, la página Detalles del lote de la consola de Google Cloud enumera los registros de trabajos (carga de trabajo por lotes). Los registros incluyen advertencias y errores filtrados de los resultados de la carga de trabajo y los registros 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 Gravedad
de la página Detalles del lote de la consola de Google Cloud.
IU de Spark (versión preliminar)
Si inscribiste tu proyecto en la vista previa de IU de Spark puedes ver la IU de Spark en la consola de Google Cloud sin tener para crear un Clúster de Dataproc PHS (servidor de historial persistente). La IU de Spark recopila detalles de la 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.