Este documento descreve as ferramentas e os arquivos que podem ser usados para monitorar e resolver problemas de cargas de trabalho em lote do Serverless para Apache Spark.
Resolver problemas de cargas de trabalho no console Google Cloud
Quando um job em lote falha ou tem desempenho ruim, a primeira etapa recomendada é abrir a página Detalhes do lote na página Lotes do console Google Cloud .
Usar a guia "Resumo": seu hub de solução de problemas
A guia Resumo, que é selecionada por padrão quando a página Detalhes do lote é aberta, mostra métricas importantes e registros filtrados para ajudar você a fazer uma avaliação inicial rápida da integridade do lote. Após essa avaliação inicial, é possível fazer uma análise mais detalhada usando ferramentas mais especializadas na página Detalhes do lote, como a interface do Spark, o Explorador de registros e o Gemini Cloud Assist.
Destaques das métricas em lote
A guia Resumo na página Detalhes do lote inclui gráficos que mostram valores importantes de métricas de carga de trabalho em lote. Os gráficos de métricas são preenchidos depois que a é concluída e oferecem uma indicação visual de possíveis problemas, como disputa de recursos, distorção de dados ou pressão de memória.
A tabela a seguir lista as métricas de carga de trabalho do Spark exibidas na página Detalhes do lote no console Google Cloud e descreve como os valores das métricas podem fornecer insights sobre o status e a performance da carga de trabalho.
Métrica | O que ele mostra? |
---|---|
Métricas no nível do executor | |
Proporção entre o tempo de GC da JVM e o tempo de execução | Essa métrica mostra a proporção entre o tempo de GC (coleta de lixo) da JVM e o tempo de execução por executor. Taxas altas podem indicar vazamentos de memória em tarefas executadas em executores específicos ou estruturas de dados ineficientes, o que pode levar a uma alta rotatividade de objetos. |
Bytes de disco espalhados | Essa métrica mostra o número total de bytes de disco transferidos entre diferentes executores. Se um executor mostrar um alto número de bytes de disco derramados, isso pode indicar distorção de dados. Se a métrica aumentar com o tempo, isso pode indicar que há estágios com pressão ou vazamentos de memória. |
Bytes lidos e gravados | Essa métrica mostra os bytes gravados em comparação com os bytes lidos por executor. Grandes discrepâncias nos bytes lidos ou gravados podem indicar cenários em que as junções replicadas levam à ampliação de dados em executores específicos. |
Registros lidos e gravados | Essa métrica mostra os registros lidos e gravados por executor. Um grande número de registros lidos com um baixo número de registros gravados pode indicar um gargalo na lógica de processamento em executores específicos, fazendo com que os registros sejam lidos enquanto esperam. Executores que ficam consistentemente atrasados em leituras e gravações podem indicar disputa de recursos nesses nós ou ineficiências de código específicas do executor. |
Proporção entre o tempo de gravação de embaralhamento e o tempo de execução | A métrica mostra o tempo gasto pelo executor no tempo de execução de embaralhamento em comparação com o tempo de execução geral. Se esse valor for alto para alguns executores, isso pode indicar distorção de dados ou serialização de dados ineficiente. É possível identificar estágios com tempos longos de gravação de shuffle na interface do Spark. Procure tarefas atípicas nessas etapas que levam mais tempo do que a média para serem concluídas. Verifique se os executores com tempos de gravação de embaralhamento altos também mostram alta atividade de E/S de disco. Uma serialização mais eficiente e etapas adicionais de particionamento podem ajudar. Um número muito grande de gravações em comparação com leituras de registros pode indicar duplicação de dados não intencional devido a junções ineficientes ou transformações incorretas. |
Métricas no nível do aplicativo | |
Progressão de fases | Essa métrica mostra o número de estágios com falha, em espera e em execução. Um grande número de estágios com falha ou em espera pode indicar distorção de dados. Verifique as partições de dados e depure o motivo da falha da etapa usando a guia Etapas na interface do Spark. |
Executores do Spark em lote | Essa métrica mostra o número de executores que podem ser necessários em comparação com o número de executores em execução. Uma grande diferença entre os executores necessários e os em execução pode indicar problemas de escalonamento automático. |
Métricas no nível da VM | |
Memória usada | Essa métrica mostra a porcentagem da memória da VM em uso. Se a porcentagem do master for alta, isso pode indicar que o driver está sob pressão de memória. Para outros nós de VM, uma porcentagem alta pode indicar que os executores estão ficando sem memória, o que pode levar a um alto vazamento de disco e um tempo de execução mais lento da carga de trabalho. Use a interface do Spark para analisar executores e verificar se há um tempo alto de GC e muitas falhas de tarefas. Também depure o código do Spark para o armazenamento em cache de grandes conjuntos de dados e a transmissão desnecessária de variáveis. |
Registros do job
A página Detalhes do lote inclui uma seção Registros do job que lista avisos e erros filtrados dos registros do job (carga de trabalho em lote). Esse recurso permite a identificação rápida de problemas críticos sem a necessidade de analisar manualmente arquivos de registro extensos. Você pode selecionar uma Gravidade do registro (por exemplo, Error
) no menu suspenso e adicionar um Filtro de texto para restringir os resultados. Para fazer uma análise mais detalhada, clique no ícone Ver na Análise de registros
para abrir os registros em lote selecionados na Análise de registros.

Exemplo: a Análise de registros é aberta depois que você escolhe Errors
no seletor de gravidade da página Detalhes do lote no console do Google Cloud .
Interface do Spark
A interface do Spark coleta detalhes de execução do Apache Spark de cargas de trabalho em lote do Serverless para Apache Spark. Não há cobrança pelo recurso da interface do Spark, que é ativado por padrão.
Os dados coletados pelo recurso da interface do Spark são armazenados por 90 dias. É possível usar essa interface da Web para monitorar e depurar cargas de trabalho do Spark sem precisar criar um servidor de histórico persistente.
Permissões e papéis necessários do Identity and Access Management
As permissões a seguir são necessárias para usar o recurso da interface do Spark com cargas de trabalho em lote.
Permissão de coleta de dados:
dataproc.batches.sparkApplicationWrite
. Essa permissão precisa ser concedida à conta de serviço que executa cargas de trabalho em lote. Essa permissão está incluída no papelDataproc Worker
, que é concedido automaticamente à conta de serviço padrão do Compute Engine usada por padrão pelo Serverless para Apache Spark (consulte Conta de serviço do Serverless para Apache Spark). No entanto, se você especificar uma conta de serviço personalizada para sua carga de trabalho em lote, adicione a permissãodataproc.batches.sparkApplicationWrite
a essa conta (normalmente, concedendo à conta de serviço o papelWorker
do Dataproc).Permissão de acesso à interface do Spark:
dataproc.batches.sparkApplicationRead
. Essa permissão precisa ser concedida a um usuário para acessar a interface do Spark no consoleGoogle Cloud . Essa permissão está incluída nos papéisDataproc Viewer
,Dataproc Editor
eDataproc Administrator
. Para abrir a interface do Spark no console Google Cloud , você precisa ter um destes papéis ou um papel personalizado que inclua essa permissão.
Abra a interface do Spark
A página da interface do Spark está disponível nas cargas de trabalho em lote do console Google Cloud .
Acesse a página Sessões interativas do Dataproc sem servidor para Apache Spark.
Clique em um ID do lote para abrir a página Detalhes do lote.
Clique em Ver interface do Spark no menu superior.
O botão Ver interface do Spark fica desativado nos seguintes casos:
- Se uma permissão obrigatória não for concedida
- Se você desmarcar a caixa de seleção Ativar a interface do Spark na página Detalhes do lote
- Se você definir a propriedade
spark.dataproc.appContext.enabled
comofalse
ao enviar uma carga de trabalho em lote
Investigações com tecnologia de IA do Gemini Cloud Assist (prévia)
Visão geral
O recurso de prévia "Investigações do Gemini Cloud Assist" usa os recursos avançados do Gemini para ajudar na criação e execução de cargas de trabalho em lote do Serverless para Apache Spark. Esse recurso analisa cargas de trabalho com falha e lentas para identificar causas raiz e recomendar correções. Ela cria análises persistentes que podem ser revisadas, salvas e compartilhadas com o suporte do Google Cloud para facilitar a colaboração e acelerar a resolução de problemas.
Recursos
Use esse recurso para criar investigações no console Google Cloud :
- Adicione uma descrição de contexto em linguagem natural a um problema antes de criar uma investigação.
- Analise cargas de trabalho em lote com falha e lentas.
- Receba insights sobre as causas raiz dos problemas com correções recomendadas.
- Crie Google Cloud consultas ao suporte com o contexto completo da investigação anexado.
Antes de começar
Para começar a usar o recurso de investigação, no seu projeto do Google Cloud , ative a API Gemini Cloud Assist.
Iniciar uma investigação
Para iniciar uma investigação, faça o seguinte:
Opção 1: no console Google Cloud , acesse a página da lista de lotes. Para qualquer lote com status
Failed
, um botão INVESTIGAR aparece na coluna Insights do Gemini. Clique no botão para iniciar uma investigação.Opção 2: abra a página de detalhes do lote da carga de trabalho em lote para investigar. Para cargas de trabalho em lote
Succeeded
eFailed
, na seção Visão geral da integridade da guia Resumo, um botão INVESTIGAR aparece no painel Insights do Gemini. Clique no botão para iniciar uma investigação.O texto do botão de investigação indica o status da investigação:
- INVESTIGAR:nenhuma investigação foi executada para este batch_details. Clique no botão para iniciar uma investigação.
- VER INVESTIGAÇÃO:uma investigação foi concluída. Clique no botão para ver os resultados.
- EM INVESTIGAÇÃO:uma investigação está em andamento.
Interpretar os resultados da investigação
Quando uma investigação é concluída, a página Detalhes da investigação é aberta. Esta página contém a análise completa do Gemini, que está organizada nas seguintes seções:
- Problema: uma seção recolhida com detalhes preenchidos automaticamente da carga de trabalho em lote que está sendo investigada.
- Observações relevantes: uma seção recolhida que lista os principais pontos de dados e anomalias encontrados pelo Gemini durante a análise de registros e métricas.
- Hipóteses: é a seção principal, que fica aberta por padrão.
Ela apresenta uma lista de possíveis causas do problema observado. Cada hipótese inclui:
- Visão geral: uma descrição da possível causa, como "Alto tempo de gravação de embaralhamento e possível distorção de tarefas".
- Correções recomendadas: uma lista de etapas práticas para resolver o problema em potencial.
Entre em ação
Depois de analisar as hipóteses e recomendações:
Aplique uma ou mais das correções sugeridas à configuração ou ao código do job e execute-o novamente.
Para enviar feedback sobre a utilidade da investigação, clique nos ícones "Gostei" ou "Não gostei" na parte de cima do painel.
Analisar e encaminhar investigações
Para revisar os resultados de uma investigação anterior, clique no nome dela na página Investigações do Cloud Assist e abra a página Detalhes da investigação.
Se precisar de mais ajuda, abra um caso de suporte do Google Cloud . Esse processo fornece ao engenheiro de suporte o contexto completo da investigação realizada anteriormente, incluindo as observações e hipóteses geradas pelo Gemini. Essa troca de contexto reduz significativamente a comunicação necessária com a equipe de suporte e leva a uma resolução mais rápida do caso.
Para criar um caso de suporte com base em uma investigação:
Na página Detalhes da investigação, clique em Pedir suporte.
Status e preços da prévia
Não há cobrança pelas investigações do Gemini Cloud Assist durante o pré-lançamento público. As cobranças serão aplicadas ao recurso quando ele estiver em disponibilidade geral (GA).
Para mais informações sobre preços após a disponibilidade geral, consulte Preços do Gemini Cloud Assist.
Pré-lançamento do recurso Peça ao Gemini (será desativado em 22 de setembro de 2025)
O recurso de prévia Perguntar ao Gemini oferecia acesso com um clique a insights nas páginas Lotes e Detalhes do lote no console Google Cloud por um botão Perguntar ao Gemini. Essa função gerou um resumo de erros, anomalias e possíveis melhorias de performance com base em registros e métricas de carga de trabalho.
Depois que o pré-lançamento do recurso "Peça ao Gemini" for desativado em 22 de setembro de 2025, os usuários poderão continuar recebendo assistência com tecnologia de IA usando o recurso de investigações do Gemini Cloud Assist.
Importante:para garantir a assistência de IA ininterrupta na solução de problemas, recomendamos ativar as investigações do Gemini Cloud Assist antes de 22 de setembro de 2025.
Registros do Serverless para Apache Spark
O registro em log é ativado por padrão no Serverless para Apache Spark, e os registros de carga de trabalho permanecem após a conclusão de uma
carga de trabalho. O Serverless para Apache Spark coleta registros de carga de trabalho no Cloud Logging.
É possível acessar os registros do Serverless para Apache Spark no recurso
Cloud Dataproc Batch
do Explorador de registros.
Consultar registros do Serverless para Apache Spark
A Análise de registros no console Google Cloud oferece um painel de consultas para ajudar você a criar uma consulta e examinar os registros de carga de trabalho em lote. Confira as etapas para criar uma consulta e examinar os registros de carga de trabalho em lote:
- O projeto atual está selecionado. Clique em Refinar escopo do projeto para selecionar outro projeto.
Defina uma consulta de registros em lote.
Use os menus de filtro para filtrar uma carga de trabalho em lote.
Em Todos os recursos, selecione o recurso Lote do Cloud Dataproc.
No painel Selecionar recurso, escolha o LOCAL do lote e depois o ID DO LOTE. Esses parâmetros de lote estão listados na página Lotes do Dataproc no console Google Cloud .
Clique em Aplicar.
Em Selecionar nomes de registros, digite
dataproc.googleapis.com
na caixa Pesquisar nomes de registros para limitar os tipos de registros a serem consultados. Selecione um ou mais dos nomes de arquivos de registro listados.
Use o editor de consultas para filtrar registros específicos da VM.
Especifique o tipo de recurso e o nome do recurso da VM, conforme mostrado no exemplo a seguir:
Observações:resource.type="cloud_dataproc_batch" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
- BATCH_UUID:o UUID do lote está listado na página "Detalhes do lote" do console Google Cloud , que é aberta quando você clica no ID do lote na página Lotes.
Os registros em lote também listam o UUID do lote no nome do recurso da VM. Confira um exemplo de um driver.log em lote:
- BATCH_UUID:o UUID do lote está listado na página "Detalhes do lote" do console Google Cloud , que é aberta quando você clica no ID do lote na página Lotes.
Clique em Executar consulta.
Tipos de registros e exemplos de consultas do Serverless para Apache Spark
A lista a seguir descreve diferentes tipos de registros do Serverless para Apache Spark e fornece exemplos de consultas da Análise de registros para cada tipo.
dataproc.googleapis.com/output
: esse arquivo de registro contém a saída da carga de trabalho em lote. O Serverless para Apache Spark transmite a saída do lote para o namespaceoutput
e define o nome do arquivo comoJOB_ID.driver.log
.Exemplo de consulta da Análise de registros para registros de saída:
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
: o namespacespark
agrega registros do Spark para daemons e executores em execução nas VMs master e de trabalho do cluster do Dataproc. Cada entrada de registro inclui um rótulo de componentemaster
,worker
ouexecutor
para identificar a origem do registro, da seguinte maneira:executor
: registros de executores de código do usuário. Normalmente, esses são registros distribuídos.master
: registros do mestre do gerenciador de recursos independente do Spark, que são semelhantes aos registros do YARNResourceManager
do Dataproc no Compute Engine.worker
: registros do worker do gerenciador de recursos independente do Spark, que são semelhantes aos registros do Dataproc no Compute Engine YARNNodeManager
.
Exemplo de consulta da Análise de registros para todos os registros no namespace
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"
Exemplo de consulta da Análise de registros para registros de componentes autônomos do Spark no namespace
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
: o namespacestartup
inclui os registros de inicialização do lote (cluster). Todos os registros de script de inicialização são incluídos. Os componentes são identificados por rótulo, por exemplo: Exemplo de consulta da Análise de registros para registros de inicialização em uma VM específica: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
: o namespaceagent
agrega registros do agente do Dataproc. Cada entrada de registro inclui um rótulo de nome de arquivo que identifica a origem do registro.Exemplo de consulta da Análise de registros para registros de agente gerados por uma VM de worker 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
: o namespaceautoscaler
agrega registros do escalonador automático do Serverless para Apache Spark.Exemplo de consulta da Análise de registros para registros de agente gerados por uma VM de worker 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 mais informações, consulte Registros do Dataproc.
Para informações sobre registros de auditoria do Serverless para Apache Spark, consulte Geração de registros de auditoria do Dataproc.
Métricas de carga de trabalho
O Serverless para Apache Spark fornece métricas de lote e do Spark que podem ser visualizadas no Metrics Explorer ou na página Detalhes do lote no console Google Cloud .
Métricas de lote
As métricas de recursos do Dataproc batch
fornecem insights sobre recursos em lote, como o número de executores em lote. As métricas de lote são prefixadas com
dataproc.googleapis.com/batch
.
Métricas do Spark
Por padrão, o Serverless para Apache Spark ativa a coleta de métricas disponíveis do Spark, a menos que você use propriedades de coleta de métricas do Spark para desativar ou substituir a coleta de uma ou mais métricas do Spark.
As métricas do Spark disponíveis incluem métricas do driver e do executor do Spark, além de métricas do sistema. As métricas do Spark disponíveis têm o prefixo custom.googleapis.com/
.
Configurar alertas de métricas
É possível criar alertas de métricas do Dataproc para receber notificações sobre problemas de carga de trabalho.
Criar gráficos
É possível criar gráficos que visualizam métricas de carga de trabalho usando o
Metrics Explorer no
console doGoogle Cloud . Por exemplo, você pode criar um gráfico para mostrar disk:bytes_used
e depois filtrar por batch_id
.
Cloud Monitoring
O Monitoring usa metadados e métricas de carga de trabalho para fornecer insights sobre a integridade e o desempenho das cargas de trabalho do Serverless para Apache Spark. As métricas de carga de trabalho incluem métricas do Spark, em lote e de operação.
Use o Cloud Monitoring no console Google Cloud para analisar métricas, adicionar gráficos, criar painéis e alertas.
Criar painéis
É possível criar um painel para monitorar cargas de trabalho usando métricas de vários projetos e diferentes produtos do Google Cloud . Para mais informações, consulte Criar e gerenciar painéis personalizados.
Servidor de histórico persistente
O Serverless para Apache Spark cria os recursos de computação necessários para executar uma carga de trabalho, executa a carga de trabalho nesses recursos e exclui os recursos quando a carga de trabalho termina. As métricas e os eventos de carga de trabalho não persistem após a conclusão de uma carga de trabalho. No entanto, é possível usar um servidor de histórico permanente (PHS, na sigla em inglês) para reter o histórico de aplicativos de carga de trabalho (registros de eventos) no Cloud Storage.
Para usar um PHS com uma carga de trabalho em lote, faça o seguinte:
Crie um servidor de histórico persistente (PHS) do Dataproc.
Especifique seu PHS ao enviar uma carga de trabalho.
Use o Gateway de componentes para se conectar ao PHS e ver detalhes do aplicativo, estágios do programador, detalhes no nível da tarefa e informações sobre ambiente e executor.
Ajuste automático
- Ative o ajuste automático para o Serverless para Apache Spark:é possível ativar o ajuste automático para o Serverless para Apache Spark ao enviar cada carga de trabalho em lote recorrente do Spark usando o console Google Cloud , CLI gcloud ou a API Dataproc.
Console
Siga estas etapas para ativar o ajuste automático em cada carga de trabalho em lote recorrente do Spark:
No console Google Cloud , acesse a página Lotes do Dataproc.
Para criar uma carga de trabalho em lote, clique em Criar.
Na seção Contêiner, preencha o nome da coorte, que identifica o lote como uma série de cargas de trabalho recorrentes. A análise assistida pelo Gemini é aplicada à segunda e às cargas de trabalho subsequentes enviadas com esse nome de coorte. Por exemplo, especifique
TPCH-Query1
como o nome da coorte para uma carga de trabalho programada que executa uma consulta diária do TPC-H.Preencha outras seções da página Criar lote conforme necessário e clique em Enviar. Para mais informações, consulte Enviar uma carga de trabalho em lote.
gcloud
Execute o seguinte comando da CLI gcloud
gcloud dataproc batches submit
localmente em uma janela de terminal ou no Cloud Shell
para ativar o ajuste automático em cada carga de trabalho em lote recorrente do Spark:
gcloud dataproc batches submit COMMAND \ --region=REGION \ --cohort=COHORT \ other arguments ...
Substitua:
- COMMAND: o tipo de carga de trabalho do Spark, como
Spark
,PySpark
,Spark-Sql
ouSpark-R
. - REGION: a região em que sua carga de trabalho será executada.
- COHORT: o nome da coorte, que
identifica o lote como uma de uma série de cargas de trabalho recorrentes.
A análise com a ajuda do Gemini é aplicada à segunda e às próximas cargas de trabalho enviadas
com esse nome de coorte. Por exemplo, especifique
TPCH Query 1
como o nome da coorte para uma carga de trabalho programada que executa uma consulta diária do TPC-H.
API
Inclua o nome RuntimeConfig.cohort
em uma solicitação batches.create para ativar o ajuste automático em cada carga de trabalho em lote recorrente do Spark. O ajuste automático é aplicado à segunda e às próximas cargas de trabalho enviadas com esse nome de coorte. Por exemplo, especifique TPCH-Query1
como o nome da coorte para uma carga de trabalho programada que executa uma consulta diária do TPC-H.
Exemplo:
...
runtimeConfig:
cohort: TPCH-Query1
...