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:
- Abra o console do AWS Glue.
- No painel de navegação, escolha Jobs (Tarefas).
- Selecione o trabalho que você deseja atualizar.
- Escolha Ação e depois escolha Editar tarefa.
- Expanda a seção Opções de monitoramento.
- Selecione Logs contínuos.
- Em Filtragem de logs, selecione Filtro padrão.
- 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:
- Abra o console do AWS Glue.
- No painel de navegação, escolha Jobs (Tarefas).
- Selecione o trabalho ao qual você deseja referenciar o arquivo.
- Escolha Ações e escolha Editar tarefa.
- Expanda a seção Configurações de segurança, bibliotecas de script e parâmetros de trabalho (opcional).
- 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