As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Amazon EMR on EC2 — Monitoramento aprimorado com o CloudWatch uso de métricas e registros personalizados
Visão geral
O Amazon EMR fornece recursos de processamento de big data poderosos e econômicos. Para maximizar o desempenho e a utilização dos recursos, o monitoramento eficaz é essencial. A Amazon CloudWatch oferece observabilidade abrangente para clusters do EMR, permitindo que você acompanhe métricas e registros em tempo real. Este documento descreve como:
-
Configure o CloudWatch agente para enviar os registros do EMR para EC2 CloudWatch
-
Adicione Hadoop, YARN e HBase métricas personalizadas por meio de classificações
-
Monitore métricas por meio de painéis integrados
-
Rastreie registros do cluster por meio de grupos de CloudWatch registros
Pré-requisitos e histórico
Por padrão, o Amazon EMR envia métricas básicas a CloudWatch cada cinco minutos sem custo adicional. Com o EMR Release 7.0+, você pode implantar o Agente para: CloudWatch
-
Colete 34 métricas detalhadas adicionais em intervalos de um minuto (cobranças adicionais se aplicam)
-
Reúna métricas de todos os nós do cluster
-
Agregue dados no nó primário antes de enviar para CloudWatch
-
Acesse métricas por meio da guia Monitoramento ou do console do EMR CloudWatch
O EMR 7.1 amplia esses recursos, permitindo que você configure o agente para capturar métricas especializadas do Hadoop, do YARN e dos componentes. HBase Para ambientes que usam o Prometheus, as métricas podem ser encaminhadas para o Amazon Managed Service for Prometheus.
CloudWatch Configuração do agente para registros
Para capturar os logins do EMR CloudWatch, crie um arquivo cloudwatch-config.json que defina quais arquivos de log coletar:
cloudwatch-config.json
{ "agent": {"metrics_collection_interval":60,"logfile":"/var/log/emr-cluster-metrics/amazon-cloudwatch-agent/amazon-cloudwatch-agent.log","run_as_user":"****","omit_hostname":true}, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/mnt/var/log/hadoop-yarn/hadoop-yarn-resourcemanager-*", "log_group_name": "/emr/yarn/resourcemnger", "log_stream_name": "{instance_id}", "publish_multi_logs" : true }, { "file_path": "/var/log/hadoop-hdfs/hadoop-hdfs-namenode-*", "log_group_name": "/emr/hdfs/namenode", "log_stream_name": "{instance_id}", "publish_multi_logs" : true } ] } } } }
Script de bootstrap para configuração CloudWatch do agente
Para aplicar sua CloudWatch configuração personalizada aos nós do EMR, crie um script de bootstrap que reiniciará o CloudWatch agente com suas configurações. Esse script garante que o agente seja executado com seus parâmetros específicos de coleta de registros após o provisionamento do cluster.
Criando o script Bootstrap
Crie um arquivo chamado cloudwatch-agent-bootstrap.sh com o seguinte conteúdo:
#!/bin/bash set -xe EMR_SECONDARY_BA_SCRIPT=$(cat << 'EOF' while true; do NODEPROVISIONSTATE=$(sed -n '/localInstance [{]/,/[}]/ {/nodeProvisionCheckinRecord [{]/,/[}]/ {/status:/ p}}' /emr/instance-controller/lib/info/job-flow-state.txt | awk '{ print $2 }') if [ "$NODEPROVISIONSTATE" == "SUCCESSFUL" ]; then sleep 10 echo "Running my post provision bootstrap" NODETYPE=$(cat /mnt/var/lib/instance-controller/extraInstanceData.json | jq -r '.instanceRole' | awk '{print tolower($0)}') # Copy config file on the instance sudo aws s3 cp s3://
amzn-s3-demo-bucket1
>/cloudwatch-config.json /etc/emr-cluster-metrics/amazon-cloudwatch-agent/conf/emr-amazon-cloudwatch-agent.json # Stop the current agent sudo /usr/bin/amazon-cloudwatch-agent-ctl -a stop # Start the agent with the created config file sudo /usr/bin/amazon-cloudwatch-agent-ctl -a fetch-config -s -m ec2 -c file:/etc/emr-cluster-metrics/amazon-cloudwatch-agent/conf/emr-amazon-cloudwatch-agent.json # Status CW Agent echo "Status CW Agent" sudo /usr/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status exit fi sleep 10 done EOF ) echo "${EMR_SECONDARY_BA_SCRIPT}" | tee -a /tmp/emr-secondary-ba.sh chmod u+x /tmp/emr-secondary-ba.sh /tmp/emr-secondary-ba.sh > /tmp/emr-secondary-ba.log 2>&1 & exit 0
Nota de configuração importante
Importante
Antes de fazer o upload do script, <amzn-s3-demo-bucket1>
substitua pelo nome real do bucket do S3 onde você armazenou o arquivo cloudwatch-config.json da etapa anterior. Isso garante que o script bootstrap possa recuperar seu arquivo de configuração durante a inicialização do cluster.
Esse script de bootstrap irá:
-
Aguarde a conclusão do provisionamento do nó
-
Baixe sua CloudWatch configuração personalizada
-
Pare qualquer CloudWatch agente em execução
-
Reinicie o agente com sua configuração específica
-
Registre o status do agente para solução de problemas
Classificações métricas personalizadas para Hadoop, YARN e HBase
Além das CloudWatch métricas padrão, você pode aprimorar seus recursos de monitoramento configurando métricas personalizadas específicas do aplicativo para os componentes do cluster do EMR. A API de configuração do Amazon EMR fornece uma forma flexível de definir exatamente quais métricas você deseja coletar.
Configurando métricas personalizadas
Você pode implementar a coleta de métricas personalizadas de duas maneiras:
-
Durante a criação do cluster para novos clusters
-
Como uma reconfiguração para clusters existentes por meio do console do EMR
Criando um arquivo de classificação
O arquivo de classificação define quais métricas de componentes específicas devem ser coletadas do seu cluster. Abaixo está um exemplo de estrutura para coletar métricas personalizadas do Hadoop:
[ { "Classification": "emr-metrics", "Configurations": [ { "Classification": "emr-hadoop-hdfs-datanode-metrics", "Properties": { "Hadoop:service=DataNode,name=DataNodeActivity-*": "DatanodeNetworkErrors,TotalReadTime,TotalWriteTime,BytesRead,BytesWritten,RemoteBytesRead,RemoteBytesWritten,ReadBlockOpNumOps,ReadBlockOpAvgTime,WriteBlockOpNumOps,WriteBlockOpAvgTime", "otel.metric.export.interval": "30000" } }, { "Classification": "emr-hadoop-yarn-nodemanager-metrics", "Properties": { "Hadoop:service=NodeManager,name=JvmMetrics": "MemNonHeapUsedM,MemNonHeapCommittedM,MemNonHeapMaxM,MemHeapUsedM,MemHeapCommittedM,MemHeapMaxM,MemMaxM", "Hadoop:service=NodeManager,name=NodeManagerMetrics": "ContainerCpuUtilization,NodeCpuUtilization,ContainersCompleted,ContainersFailed,ContainersKilled,ContainersLaunched,ContainersRolledBackOnFailure,ContainersRunning,ContainerUsedMemGB,ContainerUsedVMemGB,ContainerLaunchDurationNumOps,ContainerLaunchDurationAvgTime", "otel.metric.export.interval": "20000" } } ], "Properties": {} } ]
Etapas de implementação
-
Crie um arquivo JSON com as classificações métricas desejadas.
-
Personalize as métricas com base em seus requisitos de monitoramento.
-
Salve o arquivo e faça o upload para seu bucket do S3.
-
Consulte esse arquivo ao criar um novo cluster ou reconfigurar um existente.
Práticas recomendadas
-
Colete somente métricas que forneçam insights significativos para suas cargas de trabalho.
-
Considere o intervalo de coleta de métricas com base em suas necessidades de monitoramento.
-
Consulte a AWS documentação para ver a lista completa das métricas disponíveis para cada componente.
-
Agrupe métricas relacionadas na mesma classificação para uma melhor organização.
Essa abordagem permite que você concentre seu monitoramento nas métricas mais críticas para seus aplicativos específicos de EMR, oferecendo uma visibilidade mais profunda do desempenho do cluster.
Implantando um cluster EMR com integração CloudWatch
Siga estas etapas para criar um cluster do Amazon EMR que envia automaticamente registros e métricas personalizadas para: CloudWatch
Etapa 1: Habilitar o CloudWatch agente
Ao criar seu cluster do EMR por meio do console AWS de gerenciamento:
-
Navegue até a seção Aplicativos durante a criação do cluster.
-
Marque as caixas de seleção dos seus aplicativos principais (Hadoop, Spark etc.).
-
Role para encontrar e selecionar a opção Amazon CloudWatch Agent.
-
Isso habilita o agente em seu cluster, o que é essencial para coletar métricas e registros aprimorados.
O CloudWatch Agente será instalado em todos os nós do seu cluster, permitindo que ele reúna métricas do sistema e do aplicativo nos intervalos configurados.
Nome e aplicativos

Criação de um cluster e exibição dos pacotes disponíveis.
nota
O CloudWatch agente está disponível no EMR versão 7.0 e posterior. A ativação desse componente é necessária para a coleta de métricas personalizadas e o encaminhamento de registros descritos neste guia.
Etapa 2: Adicionar a ação Bootstrap para coleta de registros
Para configurar o CloudWatch agente para coletar e encaminhar arquivos de log específicos para CloudWatch:
-
No assistente de criação de cluster do EMR, navegue até a seção Bootstrap Actions
-
Clique em Adicionar ação de bootstrap
-
Selecione Ação personalizada no menu suspenso
-
Forneça um nome para sua ação de bootstrap (por exemplo, Configurar CloudWatch agente)
-
No campo Localização do script, insira o caminho do S3 para seu cloudwatch-agent-bootstrap script.sh (por exemplo, s3:///your-bucket-name.sh) cloudwatch-agent-bootstrap
-
Clique em Adicionar para salvar a ação de bootstrap
Essa ação de bootstrap será executada durante a inicialização do cluster, garantindo que o CloudWatchagent seja configurado corretamente com suas configurações personalizadas para coletar e encaminhar os arquivos de log especificados em seu arquivo de configuração.
O agente começará a coletar registros automaticamente assim que os nós forem provisionados, fornecendo visibilidade quase em tempo real das operações do seu cluster por meio CloudWatch de registros.
Bootstrap actions (Ações de bootstrap)

Usando ações de bootstrap.
Etapa 3: configurar a coleção de métricas personalizadas
Para habilitar a coleta de Hadoop, YARN ou HBase métricas personalizadas além do conjunto padrão:
-
No assistente de criação de cluster do EMR, navegue até a seção Configurações.
-
Clique no botão Editar configurações para expandir as opções de configuração.
-
Selecione a opção Carregar JSON do Amazon S3 no menu suspenso do método de configuração.
-
Insira o caminho do URI do S3 para seu arquivo de classificação de métricas personalizadas (por exemplo, s3://amzn-s3-demo-bucket1/ emr-metrics-classification .json).
-
Clique em Carregar para analisar a configuração.
-
Verifique se a configuração aparece corretamente na interface do console.
-
Clique em Salvar alterações para aplicar essas configurações métricas ao seu cluster.
Essa etapa instrui o CloudWatch agente a coletar as métricas específicas do componente definidas em seu arquivo de classificação. As métricas serão coletadas nos intervalos especificados em sua configuração e publicadas CloudWatch, onde poderão ser visualizadas e analisadas.
As métricas personalizadas fornecem informações mais detalhadas sobre as características de desempenho do seu cluster, permitindo um monitoramento mais preciso e a solução de problemas de seus aplicativos de EMR.
Configurações de software

Substitua as configurações padrão.
Atualizando a configuração de métricas para clusters em execução
Você pode modificar as configurações de coleta de métricas de um cluster EMR existente sem interromper as operações seguindo estas etapas:
-
Navegue até seu cluster EMR ativo no AWS Management Console.
-
Selecione a guia Configurações na exibição de detalhes do cluster.
-
Encontre a seção Configurações de grupos de instâncias.
-
Clique no botão Reconfigurar para modificar as configurações.
-
Escolha Carregar JSON do Amazon S3 ou edite diretamente a configuração.
-
Insira a localização atualizada do arquivo de classificação de métricas ou faça alterações no editor.
-
Aplique as alterações para atualizar o comportamento da coleta de métricas.
Esse recurso de reconfiguração permite que você ajuste sua abordagem de monitoramento à medida que seus requisitos de carga de trabalho evoluem. O CloudWatch agente se adaptará automaticamente à nova configuração, coletando o conjunto atualizado de métricas sem exigir a reinicialização ou o tempo de inatividade do cluster.
Importante
As alterações de configuração podem levar vários minutos para se propagar em todos os nós do cluster. Continue monitorando seus CloudWatch painéis para confirmar se as novas métricas aparecem conforme o esperado.
Configurações de cluster

Configurações do grupo de instâncias.
Validando sua integração CloudWatch
Depois de concluir as etapas de configuração, é hora de verificar se sua configuração de monitoramento está funcionando corretamente:
Etapa 1: Implantar seu cluster EMR
-
Revise todas as configurações para verificar a precisão.
-
Certifique-se de que as ações de bootstrap e os arquivos de classificação sejam referenciados corretamente.
-
Clique em Criar cluster para iniciar seu ambiente EMR.
-
Aguarde até que o cluster alcance o estado em execução (normalmente de 5 a 15 minutos).
Etapa 2: Executar aplicativos de teste
Envie vários aplicativos de teste do Spark para gerar métricas significativas:
-
Execute uma tarefa simples do Spark que processe dados de amostra.
-
Execute uma tarefa de análise de execução mais longa para observar a utilização dos recursos.
-
Teste diferentes configurações de aplicativos para comparar métricas de desempenho.
Depois que seus aplicativos forem concluídos (ou enquanto estiverem em execução):
-
Navegue até o CloudWatch console.
-
Verifique se há registros de aplicativos nos grupos de registros configurados.
-
Examine os painéis de métricas para observar métricas específicas de CPU, memória e aplicativos.
-
Verifique se as métricas personalizadas definidas em seu arquivo de classificação aparecem em CloudWatch.
Esse processo de validação confirma que sua CloudWatch integração está capturando adequadamente os registros e as métricas, fornecendo a você uma visibilidade abrangente do desempenho e do comportamento do aplicativo do seu cluster EMR.
Acessando registros do EMR em CloudWatch grupos de registros
Depois que o cluster do EMR estiver em execução e o CloudWatch agente estiver configurado adequadamente, os registros do aplicativo e do sistema estarão disponíveis em CloudWatch Registros. Siga estas etapas para acessá-las e analisá-las:
Visualizando seus grupos de registros
-
Navegue até o CloudWatch console no AWS Management Console.
-
Selecione Grupos de registros no painel de navegação esquerdo.
-
Procure os grupos de registros criados pela sua configuração, como:
-
/emr/yarn/resourcemngerpara ResourceManager registros do YARN.
-
/emr/hdfs/namenodepara NameNode registros do HDFS.
-
Qualquer grupo de log adicional especificado em seu arquivo de configuração.
-
Cada grupo de registros contém fluxos de registros organizados por ID de instância, permitindo que você rastreie registros até nós específicos em seu cluster.
Trabalhando com dados de registro
-
Pesquisar dados de registro: use o CloudWatch Logs Insights para realizar consultas estruturadas em seus grupos de registros.
-
Crie métricas: extraia métricas de padrões de registro para criar CloudWatch métricas personalizadas.
-
Definir alertas: configure alarmes com base em padrões de erro específicos ou frequências de registro.
-
Exportar registros: baixe registros para análise ou arquivamento off-line.
Retenção de log
nota
Por padrão, os registros são retidos por 30 dias. Você pode modificar a política de retenção de cada grupo de registros para manter os registros por períodos mais longos, se necessário, para fins de conformidade ou análise.
CloudWatch O Logs fornece um local centralizado para todos os seus dados de registro do EMR, eliminando a necessidade de usar SSH em nós individuais do cluster para solucionar problemas ou analisar o comportamento do aplicativo.
Visualizando métricas personalizadas no painel de monitoramento do EMR
Depois que seu cluster do EMR estiver em execução com a configuração do CloudWatch agente e das métricas personalizadas, você poderá monitorar facilmente essas métricas diretamente no console do EMR:
Acessando suas métricas personalizadas
-
Navegue até seu cluster do EMR no AWS Management Console.
-
Selecione a guia Monitoramento na página de detalhes do cluster.
-
Localize o menu suspenso Classificação métrica do filtro próximo à parte superior dos painéis de monitoramento.
-
Use esse filtro para selecionar categorias métricas específicas:
-
Escolha HDFS para visualização NameNode e DataNode métricas.
-
Selecione YARN para ver ResourceManager e conter métricas.
-
Escolha dados HBase HBasede desempenho específicos.
-
Selecione as classificações métricas personalizadas que você definiu.
-
O painel será atualizado dinamicamente para exibir gráficos das métricas selecionadas, mostrando tendências de desempenho ao longo do tempo.
Trabalhando com visualizações métricas
-
Ajuste os intervalos de tempo: altere a janela de tempo para ver atividades recentes ou tendências históricas.
-
Compare métricas: exiba várias métricas relacionadas side-by-side para análise de correlação.
-
Recursos de zoom: concentre-se em períodos específicos em que anomalias ou padrões aparecem.
-
Atualize os dados: atualize as visualizações com os dados de métricas mais recentes quase em tempo real.
Essa abordagem de monitoramento integrado permite que você acompanhe as métricas padrão do EMR e suas métricas personalizadas em um painel unificado, facilitando a identificação de problemas de desempenho, restrições de recursos ou gargalos de aplicativos sem sair do console do EMR.
CloudWatch métricas

Classificação de métricas de filtragem.