Como faço para reduzir a quantidade de logs gerados pelo meu trabalho no AWS Glue?

3 minuto de leitura
0

Meu trabalho no AWS Glue é gerar muitos logs no Amazon CloudWatch. Quero reduzir o número de logs gerados.

Resolução

Com os trabalhos de ETL do AWS Glue-Spark, você não pode controlar a verbosidade dos logs gerados pelas instâncias nas quais os trabalhos do AWS Glue são executados. Os logs são detalhados para que possam ser usados para monitorar falhas internas e ajudar no diagnóstico de falhas no trabalho. No entanto, você pode definir os níveis de log do Spark seguindo as etapas apresentadas aqui.

Escolher a configuração padrão do filtro para logs contínuos

Se você ativou logs contínuos para seu trabalho, escolha o filtro Padrão para a opção Filtragem de logs. Esse filtro pode ajudar a eliminar as mensagens inúteis do driver/executor do Apache Spark e das mensagens de log de pulsação do Apache Hadoop YARN. Para alterar a configuração do filtro de log do seu trabalho do AWS Glue, faça o seguinte:

  1. Abra o console do AWS Glue.
  2. No painel de navegação, escolha Jobs (Tarefas).
  3. Selecione o trabalho que você deseja atualizar.
  4. Escolha Ação e depois escolha Editar tarefa.
  5. Expanda a seção Opções de monitoramento.
  6. Selecione Logs contínuos.
  7. Em Filtragem de logs, selecione Filtro padrão.
  8. Escolha Salvar.

Para alterar essa configuração na AWS Command Line Interface (AWS CLI), use o seguinte comando:

'--enable-continuous-cloudwatch-log': 'true'
'--enable-continuous-log-filter': 'true'

Observação: se você receber erros ao executar comandos da AWS CLI, certifique-se de estar utilizando a versão mais recente da AWS CLI.

Para obter mais informações, consulte Habilitar logs contínuos para trabalhos do AWS Glue.

**Importante:**Mesmo com a configuração padrão do filtro, os logs mestres da aplicação para as tarefas do Spark ainda são enviados aos grupos de logs /aws-glue/jobs/output and /aws-glue/jobs/error.

Definir o nível de log usando o método de contexto do Spark setLogLevel

Você pode definir o nível de log do seu trabalho usando o método setLogLevel de pyspark.context.SparkContext. Os níveis de log válidos incluem ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE e WARN. Para mais informações, consulte a documentação do Spark para setLogLevel.

Use o código a seguir para importar o método de contexto do Spark e definir o nível de log para seu trabalho:

from pyspark.context import SparkContext
sc = SparkContext()
sc.setLogLevel("new-log-level")

Observação: certifique-se de substituir new-log-level pelo nível de log que você deseja definir para seu trabalho.

Para obter mais informações, consulte a documentação do Spark para Configurar logs.

Usar um arquivo log4j.properties personalizado para definir o nível de registro

O Spark usa configurações log4j para registro em log. Você pode incluir as preferências de log em um arquivo log4j.properties, carregar o arquivo no Amazon Simple Storage Service (Amazon S3) e usar o arquivo na tarefa do AWS Glue.

Para referenciar o arquivo do Amazon S3 no trabalho, faça o seguinte:

  1. Abra o console do AWS Glue.
  2. No painel de navegação, escolha Jobs (Tarefas).
  3. Selecione o trabalho ao qual você deseja referenciar o arquivo.
  4. Escolha Ações e escolha Editar tarefa.
  5. Expanda a seção Configurações de segurança, bibliotecas de script e parâmetros de trabalho (opcional).
  6. Em Caminho dos arquivos referenciados, cole o caminho completo do S3 onde você armazenou o arquivo log4j.properties.

Para obter mais informações, consulte Fornecer seus próprios scripts personalizados.


Informações relacionadas

Monitoramento com Amazon CloudWatch

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos