É possível monitorar e solucionar 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 sem servidor 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 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, na sigla em inglês) do Dataproc.
Especifique seu PHS ao enviar uma carga de trabalho.
Use o Gateway de componentes para se conectar ao PHS e visualizar detalhes do aplicativo, estágios do programador, detalhes do nível da tarefa e informações do ambiente e do 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 persistem após o término de uma carga de trabalho. O Dataproc sem servidor para Spark coleta registros de carga de trabalho no Cloud Logging.
É possível acessar os registros da carga de trabalho spark
, agent
, output
e container
no
recurso Cloud Dataproc Batch
na Análise de registros.
Exemplo em lote do Dataproc sem servidor para Spark:
Para mais informações, consulte Registros 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 de coleta de métricas do Spark para desativar ou substituir a coleta de uma ou mais métricas do Spark.
É possível visualizar as métricas de carga de trabalho no Metrics Explorer ou na página Detalhes do lote no console do Google Cloud.
Métricas de lote
As métricas de recurso do Dataproc batch
fornecem insights sobre recursos em lote, como o número de executores em lote. As métricas em lote têm o prefixo dataproc.googleapis.com/batch
.
Métricas do Spark
As métricas disponíveis do Spark incluem métricas de driver e executor do Spark, além de métricas do sistema. As métricas disponíveis do Spark têm o prefixo
custom.googleapis.com/
.
Configurar alertas de métricas
Crie alertas de métricas do Dataproc para receber avisos de problemas de carga de trabalho.
Criar gráficos
É possível criar gráficos que visualizam as métricas de carga de trabalho usando o Metrics Explorer no console do Google Cloud. Por exemplo, é possível criar um gráfico para exibir disk:bytes_used
e, em seguida, 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 de cargas de trabalho do Dataproc sem servidor para Spark. As métricas de carga de trabalho incluem métricas do Spark, de lote e de operação.
Use o Cloud Monitoring no console do Google Cloud para conhecer métricas, adicionar gráficos, criar painéis e criar 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 recursos avançados de visualização de solução de problemas disponíveis no console do Google Cloud, que incluem a solução de problemas assistida pelo Gemini para o Dataproc sem servidor que faz parte da oferta do Gemini no BigQuery.
Acesso aos recursos de pré-lançamento
Para se inscrever na versão de pré-lançamento dos recursos avançados de solução de problemas, preencha e envie o formulário Gemini na visualização do BigQuery. Depois que o formulário for aprovado, os projetos listados nele terão acesso aos recursos de pré-lançamento.
Preços de pré-lançamento
Não há cobrança adicional por participar da prévia. As cobranças serão aplicadas aos seguintes recursos em fase de pré-lançamento quando eles forem disponibilidade geral (GA, na sigla em inglês):
- Solução de problemas do Dataproc sem servidor com a ajuda do Genmini
- Destaques das métricas em lote
- Registros do job
O aviso com antecedência sobre cobranças do GA será enviado para o endereço de e-mail fornecido no formulário de inscrição da prévia.
Requisitos de atributos
Inscrição: é necessário se inscrever para o recurso.
Permissão:você precisa ter a permissão
dataproc.batches.analyze
.Se você tem o papel predefinido
roles/dataproc.admin
,roles/dataproc.editor
ouroles/dataproc.viewer
, tem a permissão necessária. Nenhuma ação adicional é necessária.Se você usar um papel personalizado para acessar os serviços do Dataproc, ele precisará ter a permissão
dataproc.batches.analyze
. É possível usar a CLI gcloud para adicionar a permissão, conforme mostrado no comando a seguir, que adiciona a permissão no nível do projeto:
gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \ --add-permissions="dataproc.batches.analyze"
Ativar a solução de problemas assistida pelo Gemini para o Dataproc sem servidor: ative a solução de problemas assistida pelo Gemini para o Dataproc sem servidor ao enviar cada carga de trabalho recorrente do Spark em lote usando o console do Google Cloud, CLI gcloud ou a API Dataproc. Depois que esse recurso é ativado em uma carga de trabalho em lote recorrente, o Dataproc armazena uma cópia dos registros da carga de trabalho por 30 dias e usa os dados de registros salvos para oferecer a solução de problemas assistida pelo Gemini para a carga de trabalho. Para informações sobre o conteúdo do registro de carga de trabalho do Spark, consulte Dataproc sem servidor para registros do Spark.
Console
Siga as etapas abaixo para ativar a solução de problemas assistida pelo Gemini em cada carga de trabalho recorrente em lote do Spark:
No console do 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 de uma série de cargas de trabalho recorrentes. A análise assistida pelo Gemini é aplicada à segunda carga de trabalho e às próximas que são enviadas com o nome da coorte. Por exemplo, especifique
TPCH-Query1
como o nome da coorte para uma carga de trabalho programada que executa uma consulta TPC-H diária.Preencha as 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 a solução de problemas assistida pelo Gemini em cada carga de trabalho em lote do Spark recorrente:
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 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 do Gemini é aplicada à segunda carga de trabalho e às próximas cargas de trabalho enviadas
com o nome da coorte. Por exemplo, especifique
TPCH Query 1
como o nome da coorte para uma carga de trabalho programada que executa uma consulta TPC-H diária.
API
Inclua o nome RuntimeConfig.cohort
em uma solicitação batches.create para ativar a solução de problemas assistida pelo Gemini em cada carga de trabalho recorrente em lote do Spark. A análise assistida pelo Gemini é aplicada à segunda carga de trabalho e às subsequentes enviadas com o nome da coorte. Por exemplo, especifique TPCH-Query1
como o nome da coorte para uma carga de trabalho programada que executa uma consulta diária TPC-H.
Exemplo:
...
runtimeConfig:
cohort: TPCH-Query1
...
Solução de problemas assistidas pelo Gemini para o Dataproc sem servidor
Os seguintes recursos de visualização da solução de problemas assistidas pelo Gemini estão disponíveis nas páginas de lista Detalhes do lote e Lotes no console do Google Cloud.
Guia Investigar: a guia "Investigar" na página Detalhes do lote fornece uma seção "Visão geral da integridade (pré-lançamento)" com os seguintes painéis de solução de problemas auxiliados pelo Gemini:
- O que foi ajustado automaticamente? Se você ativou o ajuste automático em uma ou mais cargas de trabalho, esse painel exibirá as alterações de ajuste automático mais recentes aplicadas a cargas de trabalho em execução, concluídas e com falha.
- O que está acontecendo agora? e O que posso fazer a respeito? Clique em Perguntar ao Gemini para solicitar recomendações para ajudar a corrigir cargas de trabalho com falha ou melhorar cargas de trabalho bem-sucedidas, mas lentas.
Se você clicar em Perguntar ao Gemini, o Gemini vai gerar um resumo de erros, anomalias ou destaques de registros de carga de trabalho, métricas e eventos do Spark. Gemini também pode exibir uma lista de etapas recomendadas que você pode seguir para corrigir uma carga de trabalho com falha ou melhorar o desempenho de uma carga de trabalho bem-sucedida, mas lenta.
Colunas de solução de problemas assistidas pelo Genein: como parte da versão de pré-lançamento, a página da lista de Lotes do Dataproc no console do Google Cloud inclui as colunas
What was Autotuned
,What is happening now?
eWhat can I do about it?
.O botão Perguntar ao Gemini é exibido e ativado somente se um lote concluído estiver no estado
Failed
,Cancelled
ouSucceeded
. Se você clicar em Perguntar ao Gemini, o Gemini vai gerar um resumo de erros, anomalias ou destaques de registros de carga de trabalho, métricas e eventos do Spark. Gemini também pode exibir uma lista de etapas recomendadas que você pode seguir para corrigir uma carga de trabalho com 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 mostram valores importantes de métricas de carga de trabalho em lote. Os gráficos de métricas são preenchidos com valores após a conclusão do lote.
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 os valores de 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 GC da JVM para o ambiente de execução | Essa métrica mostra a proporção entre o tempo de coleta de lixo (GC, na sigla em inglês) 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 de disco derramados | Esta métrica mostra o número total de bytes de disco espalhados em diferentes executores. Se um executor mostra muitos bytes de disco espalhados, isso pode indicar um desvio nos dados. Se a métrica aumentar com o tempo, isso pode indicar que há estágios com pressão de memória 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 mesclagens replicadas levam à amplificação de dados em executores específicos. |
Registros lidos e gravados | Essa métrica mostra registros lidos e gravados por executor. Leitura de registros grandes com números baixos de registros gravados pode indicar um gargalo na lógica de processamento em executores específicos, levando à leitura dos registros durante a espera. Os executores que atrasam consistentemente nas leituras e gravações podem indicar a 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 de embaralhamento e o tempo de execução | A métrica mostra o 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 pode indicar desvio nos dados 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 atípicas nesses estágios que levam mais tempo do que o tempo médio para serem concluídos. Verifique se os executores com altos tempos de gravação de embaralhamento também mostram alta atividade de E/S de disco. Serialização mais eficiente e etapas adicionais de particionamento podem ajudar. Gravações de registros muito grandes em comparação com leituras de registros podem indicar uma 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 etapas nas fases com falha, em espera e em execução. Um grande número de estágios com falha ou em espera pode indicar desvios nos dados. Verifique se há partições de dados e depure o motivo da falha no estágio usando a guia Stages na IU do Spark. |
Executores de 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 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 de memória da VM em uso. Se a porcentagem mestre for alta, isso pode indicar que o driver está sob pressão de memória. Para outros nós de VM, uma alta porcentagem pode indicar que os executores estão ficando sem memória, o que pode levar a um alto vazamento de disco e um ambiente de execução de carga de trabalho mais lento. Use a interface do Spark para analisar executores e verificar se há alto tempo de GC e altas 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 os registros de jobs (carga de trabalho em lote). Os registros incluem avisos e erros filtrados da saída da carga de trabalho e dos registros do Spark. Selecione Gravidade do registro, adicione um Filtro e clique no ícone Visualizar 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 de escolher Errors
no seletor "Gravidade" na página Detalhes do lote no console do Google Cloud.
Interface do Spark (pré-lançamento)
Se você tiver inscrito seu projeto no recurso de visualização da interface do Spark, será possível visualizar a interface do Spark no Console do Google Cloud sem precisar criar um cluster do servidor de histórico permanente (PHS, na sigla em inglês) do Dataproc. A interface do Spark coleta detalhes da execução do Spark de cargas de trabalho em lote. Para mais informações, consulte o Guia do usuário distribuído para clientes inscritos como parte da versão de pré-lançamento da interface do Spark.