Monitore e solucione problemas de cargas de trabalho do Dataproc sem servidor

É possível monitorar e resolver problemas do Dataproc sem servidor para Cargas de trabalho em lote do Spark usando as informações e ferramentas discutidas nas seções a seguir.

Servidor de histórico persistente

O Dataproc Serverless para Spark cria os recursos de computação necessários para executar uma carga de trabalho. executa a carga de trabalho nesses recursos e os exclui quando a carga de trabalho termina. As métricas e os eventos da carga de trabalho não são mantidos após a conclusão dela. No entanto, é possível usar Persistent History Server (PHS) para reter o histórico de aplicativos da carga de trabalho (evento) registros) no Cloud Storage.

Para usar um PHS com uma carga de trabalho em lote, faça o seguinte:

  1. Crie um servidor de histórico permanente do Dataproc (PHS).

  2. Especifique seu PHS ao enviar uma carga de trabalho.

  3. Usar o Gateway de Componentes para se conectar ao PHS e visualizar detalhes do aplicativo, estágios do programador, detalhes no nível da tarefa e ambiente e executor.

Dataproc sem servidor para registros do Spark

A geração de registros é ativada por padrão no Dataproc sem servidor para Spark, e os registros de carga de trabalho são mantidos após um carga de trabalho concluída. O Dataproc sem servidor para Spark coleta registros de cargas de trabalho no Cloud Logging. É possível acessar os registros spark, agent, output e container da carga de trabalho no Cloud Dataproc Batch na Análise de registros.

Exemplo de lote do Dataproc sem servidor para Spark:

Exemplo de seleção em lote no Metrics Explorer.

Para mais informações, consulte Registros do Dataproc.

Registros de auditoria do Dataproc sem servidor

Para informações sobre os registros de auditoria do Dataproc sem servidor, consulte Geração de registros de auditoria do Dataproc

Métricas de carga de trabalho

Por padrão, o Dataproc sem servidor para Spark permite a coleta de métricas do Spark disponíveis, a menos que você use Propriedades da coleta de métricas do Spark para desativar ou modificar a coleta de uma ou mais métricas do Spark.

É possível conferir as métricas de carga de trabalho no Metrics Explorer ou Página Detalhes do lote no console do Google Cloud.

Métricas em lote

As métricas de recursos batch do Dataproc fornecem insights sobre recursos em lote, como o número de executores de lote. As métricas em lote são prefixadas dataproc.googleapis.com/batch:

Exemplo de métrica em lote no Metrics Explorer.

Métricas do Spark

Métricas do Spark disponíveis incluem métricas do driver e do executor do Spark e métricas do sistema. As métricas do Spark disponíveis são prefixadas com custom.googleapis.com/.

Exemplo de métrica do Spark no Metrics Explorer.

Configurar alertas de métricas

Você pode criar alertas de métricas do Dataproc para receber avisos sobre problemas na carga de trabalho.

Criar gráficos

É possível criar gráficos que visualizam métricas de carga de trabalho usando o Metrics Explorer na console do Google Cloud. Por exemplo, é possível crie um gráfico para mostrar disk:bytes_used e filtre 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 do Dataproc sem servidor para cargas de trabalho do Spark. As métricas de carga de trabalho incluem métricas do Spark, métricas em lote e métricas de operação.

É possível usar o Cloud Monitoring no console do Google Cloud. para conferir métricas e adicionar gráficos e 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.

Solução de problemas avançada (pré-lançamento)

Nesta seção, abordamos os conceitos avançados de solução de problemas recursos (Pré-lançamento) que são disponíveis no console do Google Cloud. Esses recursos incluem Solução de problemas assistida pelo Gemini para Dataproc sem servidor, que faz parte da solução Gemini no BigQuery.

Acesso a recursos de pré-visualização

Para se inscrever no pré-lançamento do recursos avançados de solução de problemas, preencha e envie Inscrição pré-GA do Gemini no BigQuery forma Depois da aprovação do formulário, os projetos listados nele terão acesso a pré-lançamento de recursos.

Visualizar preços

Não há cobrança adicional por participar da prévia. Os seguintes recursos em fase de pré-lançamento vão receber cobranças quando eles forem ativados disponibilidade geral (GA):

Um aviso com antecedência das cobranças do GA será enviado para o endereço de e-mail informado formulário de inscrição de visualização.

Requisitos de atributos

  • Inscrição: é necessário se inscrever no recurso.

  • Permissão:é preciso ter a permissão dataproc.batches.analyze.

    .
    gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \
    --add-permissions="dataproc.batches.analyze"
    
  • Ative a solução de problemas assistida pelo Gemini para o Dataproc sem servidor:você ativa a solução de problemas assistida pelo Gemini. solução de problemas do Dataproc sem servidor ao enviar cada carga de trabalho em lote recorrente do Spark usando o console do Google Cloud, CLI gcloud ou o API. Depois que esse recurso for ativado em uma carga de trabalho em lote recorrente, o Dataproc armazena uma cópia dos registros de carga de trabalho por 30 dias e usa os dados de registro salvos para oferecer a solução de problemas assistida pelo Gemini para a carga de trabalho. Para informações sobre o conteúdo dos registros de carga de trabalho do Spark, consulte Dataproc sem servidor para registros do Spark.

Console

Siga estas etapas para ativar a solução de problemas assistida pelo Gemini em cada carga de trabalho recorrente em lote do Spark:

  1. No console do Google Cloud, acesse a página Lotes do Dataproc.

    Acessar Lotes do Dataproc

  2. Para criar uma carga de trabalho em lote, clique em Criar.

  3. Na seção Contêiner, preencha Nome da coorte, que identifica o lote como uma de uma série de cargas de trabalho recorrentes. A análise assistida pelo Gemini é aplicada à segunda carga de trabalho e às subsequentes enviados com esse nome de coorte. Por exemplo, especifique TPCH-Query1 como o nome da coorte de uma carga de trabalho programada que executa um diária do TPC-H.

  4. Preencha outras seções da página Criar lote conforme necessário e clique em Envie. Para mais informações, consulte Envie uma carga de trabalho em lote.

gcloud

Execute a CLI gcloud a seguir gcloud dataproc batches submit localmente em uma janela de terminal ou no Cloud Shell para ativar a solução de problemas assistida pelo Gemini em cada carga de trabalho recorrente em lote 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 ou Spark-R.
  • REGION: o região onde a 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 assistida pelo Gemini é aplicada à segunda carga de trabalho e às subsequentes enviadas a este nome de coorte. Por exemplo, especifique TPCH Query 1 como o nome da coorte de uma carga de trabalho programada que executa uma atividade TPC-H.

API

Inclua o RuntimeConfig.cohort em um batches.create solicitação para ativar a solução de problemas assistida pelo Gemini em cada Spark recorrente em lote. A análise assistida pelo Gemini é aplicada à segunda carga de trabalho e às subsequentes enviadas a este nome de coorte. Por exemplo, especifique TPCH-Query1 como o nome da coorte. para uma carga de trabalho programada que é executada diariamente TPC-H.

Exemplo:

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

Solução de problemas assistida pelo Gemini no Dataproc sem servidor

Os seguintes recursos de prévia para solução de problemas assistidos pelo Gemini estão disponíveis no Detalhes do lote e Lotes listam páginas no console do Google Cloud.

  • Guia Investigar: a guia "Investigar" na página Detalhes do lote fornece uma seção de visão geral da integridade (pré-lançamento) com o seguinte: Painéis de solução de problemas assistidos pelo Gemini:

    • O que foi ajustado automaticamente? Se você ajuste automático ativado em uma ou mais cargas de trabalho, esse painel exibe as mudanças mais recentes no ajuste automático que foram aplicadas a cargas de trabalho em execução, concluídas e com falha.

    Painel de investigação do ajuste automático.

    • O que está acontecendo agora? e O que posso fazer a respeito? Clique em Pedir ao Gemini para pedir recomendações e ajudar a corrigir cargas de trabalho com falha. ou melhorar cargas de trabalho bem-sucedidas, mas lentas.

    Botão "Perguntar ao Gemini".

    Se você clicar em Perguntar ao Gemini, o Gemini para Google Cloud vai gerar um resumo de todos os erros, ou destaques de registros de carga de trabalho, métricas e eventos do Spark. O Gemini para Google Cloud também pode mostrar uma lista de etapas recomendadas para corrigir uma falha ou melhorar o desempenho de uma carga de trabalho bem-sucedida, mas lenta.

    Insights gerados pelo Gemini para o Google Cloud.

  • Colunas de solução de problemas assistidas pelo Gemini:como parte do de pré-lançamento, a página da lista Lotes do Dataproc na O console do Google Cloud inclui What was Autotuned, What is happening now?, e What can I do about it?.

    Os lotes listam as colunas do Gemini.

    O botão Perguntar ao Gemini vai aparecer. ativada somente se um lote completo estiver no estado Failed, Cancelled ou Succeeded. Se você clicar em Perguntar ao Gemini, o Gemini no Google Cloud gera um resumo de todos os erros, anomalias ou destaques de registros de carga de trabalho, métricas e eventos do Spark. O Gemini para Google Cloud também pode mostrar uma lista de etapas recomendadas para corrigir uma falha ou melhorar o desempenho de uma carga de trabalho bem-sucedida, mas lenta.

Destaques de métricas em lote

Como parte da versão de pré-lançamento, a página Detalhes do lote no console do Google Cloud inclui gráficos que exibem valores importantes das métricas de carga de trabalho em lote. A métrica os gráficos são preenchidos com valores após a conclusão do lote.

Painel de métricas do lote.

Tabela de métricas

A tabela a seguir lista as métricas de carga de trabalho do Spark exibidas na Página Detalhes do lote no console do Google Cloud e descreve como as métricas podem fornecer insights sobre o status e o desempenho da carga de trabalho.

Métrica O que ele mostra?
Métricas no nível do Executor
Proporção do tempo de execução de GC da JVM 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. Proporções 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 do disco espalhados Essa métrica mostra o número total de bytes de disco espalhados por diferentes executores. Se um executor mostrar muitos bytes de disco espalhados, isso pode indicar desvio de dados. Se a métrica aumentar ao longo do 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 aos bytes lidos por executor. Grandes discrepâncias nos bytes lidos ou gravados podem indicar cenários em que as junções replicadas levam à amplificação de dados em executores específicos.
Registros lidos e gravados Essa métrica mostra registros lidos e gravados por executor. Um grande número de leituras de registro com poucos registros gravados pode indicar um gargalo na lógica de processamento em executores específicos, fazendo com que os registros sejam lidos durante a espera. Os executores que demoram consistentemente para ler e gravar podem indicar contenção de recursos nesses nós ou ineficiências de código específicas do executor.
Proporção entre o tempo de gravação do embaralhamento e o tempo de execução A métrica mostra a quantidade de tempo que o executor passou no ambiente de execução de embaralhamento em comparação com o ambiente geral. Se esse valor for alto para alguns executores, isso poderá indicar distorção ou serialização ineficiente de dados. É possível identificar estágios com longos tempos de gravação de embaralhamento na interface do Spark. Procure tarefas outliers nesses estágios que levam mais do que o tempo médio para conclusão. Confira se os executores com altos tempos de gravação de embaralhamento também mostram alta atividade de E/S do disco. Uma serialização mais eficiente e etapas adicionais de particionamento podem ajudar. Gravações de registros muito grandes em comparação com as leituras de registro podem indicar duplicação não intencional de dados 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 nos estágios com falha, em espera e em execução. Um grande número de estágios com falha ou em espera pode indicar desvio de dados. Verifique se há partições de dados e depure o motivo da falha do estágio usando a guia Stages na interface do Spark.
Executores de lote do Spark Esta métrica mostra o número de executores que podem ser necessários em relação ao número de executores em execução. Uma grande diferença entre os executores necessários e em execução podem indicar problemas de escalonamento automático.
Métricas no nível da VM
Memória usada Essa métrica mostra a porcentagem de memória da VM em uso. Se a porcentagem do mestre 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 resultar em um alto vazamento de disco e em um ambiente de execução de carga de trabalho mais lento. Use a interface do Spark para analisar os executores e verificar se há um alto tempo de GC e muitas falhas de tarefas. Além disso, depure o código Spark para armazenamento em cache de grandes conjuntos de dados e transmissão desnecessária de variáveis.

Registros do job

Como parte da versão de pré-lançamento, a página Detalhes do lote no console do Google Cloud lista registros de job (carga de trabalho em lote). Os registros incluem avisos e erros filtrados das saídas de cargas de trabalho e dos registros do Spark. Selecione "Registrar" Gravidade, adicione um Filtro e 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 abre depois de escolher Errors em "Gravidade" seletor na página Detalhes do lote no console do Google Cloud.

Análise de registros em lote.

Interface do Spark (pré-lançamento)

Se você registrou seu projeto na visualização da IU do Spark é possível visualizar a interface do Spark no console do Google Cloud sem precisar para criar Cluster PHS (Persistent History Server) do Dataproc. A interface do Spark coleta detalhes de execução do Spark de cargas de trabalho em lote. Para mais informações, consulte o Guia do usuário distribuído para os clientes inscritos como parte da versão de pré-lançamento da interface do Spark.