Monitorar o Amazon EMR com o CloudWatch - Amazon EMR

Monitorar o Amazon EMR com o CloudWatch

Métricas são atualizadas a cada cinco minutos e automaticamente coletadas e enviadas ao CloudWatch para cada cluster do Amazon EMR. Esse intervalo não é configurável. Não há cobrança para as métricas do Amazon EMR relatadas por meio do CloudWatch. Essas métricas de ponto de dados de cinco minutos são arquivadas por 63 dias, e os dados são descartados após esse período.

Como usar métricas do Amazon EMR?

A tabela a seguir mostra os usos comuns das métricas informadas pelo Amazon EMR. Essas são sugestões para você começar, e não uma lista abrangente. Para obter uma lista completa das métricas relatadas pelo Amazon EMR, consulte Métricas relatadas pelo Amazon EMR no CloudWatch.

Como eu faço para... Métricas relevantes
Controlar o progresso do meu cluster Examine as métricas RunningMapTasks, RemainingMapTasks, RunningReduceTasks e RemainingReduceTasks.
Detectar clusters ociosos A métrica IsIdle controla se um cluster está ativo, mas não executando tarefas no momento. Você pode definir um alarme a ser disparado quando o cluster permanecer ocioso por um determinado tempo, como trinta minutos.
Detectar quando um nó fica sem armazenamento A métrica MRUnhealthyNodes rastreia quando um ou mais nós centrais ou de tarefa ficam sem armazenamento em disco local e fazem a transição para o estado UNHEALTHY do YARN. Por exemplo, os nós centrais ou de tarefa estão com pouco espaço em disco e não poderão executar tarefas.
Detectar quando um cluster fica sem armazenamento A métrica HDFSUtilization monitora a capacidade HDFS combinada do cluster e pode exigir o redimensionamento do cluster para adicionar mais nós centrais. Por exemplo, a utilização do HDFS é alta, o que pode afetar os trabalhos e a integridade do cluster.
Detectar quando um cluster está em execução com capacidade reduzida A métrica MRLostNodes rastreia quando um ou mais nós centrais ou de tarefa não conseguem se comunicar com o nó principal. Por exemplo, o nó principal não consegue acessar o nó central ou de tarefa.

Para obter mais informações, consulte O cluster é terminado com NO_SLAVE_LEFT e nós centrais FAILED_BY_MASTER e AWSSupport-AnalyzeEMRLogs.

Acessar as métricas do CloudWatch para o Amazon EMR

Você pode visualizar as métricas que o Amazon EMR informa ao CloudWatch usando o console do Amazon EMR ou o console do CloudWatch. Também é possível recuperar métricas usando o comando mon-get-stats da CLI do CloudWatch ou a API GetMetricStatistics do CloudWatch. Para obter mais informações sobre como visualizar ou recuperar métricas do Amazon EMR usando o CloudWatch, consulte o Guia do usuário do Amazon CloudWatch.

nota

Reformulamos o console do Amazon EMR para torná-lo mais fácil de usar. Consulte O que há de novo no console? para conhecer as diferenças entre as experiências do console antigo e novo.

New console
Visualizar métricas usando o novo console
  1. Faça login no AWS Management Console e abra o console do Amazon EMR em https://console.aws.amazon.com/emr.

  2. Em EMR no EC2 no painel de navegação esquerdo, escolha Clusters e, em seguida, escolha o cluster cujas métricas você deseja visualizar. Isso abrirá a página de detalhes do cluster.

  3. Selecione a guia Monitoramento da página de detalhes do cluster. Escolha qualquer uma das opções Status do cluster, Status do nó ou Entradas e saídas para carregar os relatórios sobre o progresso e a integridade do cluster.

  4. Após escolher uma métrica para visualizar, você poderá aumentar cada grafo. Para filtrar o período de tempo do grafo, selecione uma opção pré-preenchida ou escolha Personalizado.

Old console
Visualizar as métricas usando o console antigo
  1. Abra o console do Amazon EMR em https://console.aws.amazon.com/elasticmapreduce/.

  2. Para visualizar as métricas de um cluster, selecione esse cluster para exibir o painel Summary (Resumo).

  3. Escolha Monitoring (Monitoramento) para visualizar informações sobre esse cluster. Escolha qualquer uma das guias Status do cluster, Map/Reduce, Status do nó, ou ES para carregar os relatórios sobre o progresso e a integridade do cluster.

  4. Depois que você escolher uma métrica para visualizar, você poderá selecionar um tamanho de gráfico. Edite os campos Start (Iniciar) e End (Finalizar) para filtrar as métricas para um período específico.

Métricas relatadas pelo Amazon EMR no CloudWatch

A tabela a seguir lista todas as métricas que o Amazon EMR informa no console e envia ao CloudWatch.

Métricas do Amazon EMR

O Amazon EMR envia dados de diversas métricas para o CloudWatch. Todos os clusters do Amazon EMR enviam métricas automaticamente em intervalos de cinco minutos. As métricas são arquivadas por duas semanas. Depois desse período, os dados serão descartados.

O namespace AWS/ElasticMapReduce inclui as métricas a seguir.

nota

O Amazon EMR extrai métricas de um cluster. Se um cluster torna-se inacessível, nenhuma métrica é relatada até que o cluster fique disponível novamente.

As métricas a seguir estão disponíveis para clusters que executam o Hadoop versões 2.x.

Métrica Descrição
Status do cluster

IsIdle

Indica que um cluster não está mais executando nenhum trabalho, mas ainda está ativo e acumulando cobranças. É definido como 1 se nenhuma tarefa ou nenhum trabalho estiver em execução, caso contrário, é definido como 0. Esse valor é verificado em intervalos de 5 minutos, sendo que um valor de 1 indica somente que o cluster estava ocioso no momento da verificação, e não que ele ficou ocioso durante todo o período de 5 minutos. Para evitar falsos positivos, você deve gerar um alerta quando esse valor for 1 em mais de uma verificação consecutiva de 5 minutos. Por exemplo, você pode gerar um alerta para esse valor se ele for 1 por 30 minutos ou mais.

Caso de uso: monitorar a performance do cluster

Unidade: booliano

ContainerAllocated

O número de contêineres de recurso alocados pelo ResourceManager.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

ContainerReserved

O número de contêineres reservados.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

ContainerPending

O número de contêineres na fila que ainda não foram alocados.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

ContainerPendingRatio

A relação de contêineres pendentes para contêineres alocados (ContainerPendingRatio = ContainerPending / ContainerAllocated). Se ContainerAllocated = 0, ContainerPendingRatio = ContainerPending. O valor de ContainerPendingRatio representa um número, e não uma porcentagem. Esse valor é útil para escalonar recursos de cluster com base no comportamento de alocação do contêiner.

Unidades: Contagem

AppsCompleted

O número de aplicativos enviados para o YARN que foram concluídos.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

AppsFailed

O número de aplicativos enviados para o YARN que apresentaram falha ao concluir.

Caso de uso: monitorar o progresso do cluster, monitorar a integridade do cluster

Unidades: Contagem

AppsKilled

O número de aplicativos enviados para o YARN que foram interrompidos.

Caso de uso: monitorar o progresso do cluster, monitorar a integridade do cluster

Unidades: Contagem

AppsPending

O número de aplicativos enviados para o YARN em estado pendente.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

AppsRunning

O número de aplicativos enviados para o YARN que estão em execução.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

AppsSubmitted

O número de aplicativos enviados para o YARN.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

Status do nó

CoreNodesRunning

O número de nós core em funcionamento. Os pontos de dados para essa métrica são relatados somente quando existe um grupo de instâncias correspondente.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

CoreNodesPending

O número de nós core aguardando atribuição. Todos os nós core solicitados podem não estar disponíveis imediatamente; essa métrica reporta as solicitações pendentes. Os pontos de dados para essa métrica são relatados somente quando existe um grupo de instâncias correspondente.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

LiveDataNodes

A porcentagem de nós de dados que estão recebendo trabalho do Hadoop.

Caso de uso: monitorar a integridade do cluster

Unidade: percentual

MRTotalNodes

O número de nós atualmente disponíveis para trabalhos MapReduce. Equivalente ao mapred.resourcemanager.TotalNodes da métrica YARN.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

MRActiveNodes

O número de nós executando tarefas ou trabalhos MapReduce no momento. Equivalente ao mapred.resourcemanager.NoOfActiveNodes da métrica YARN.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

MRLostNodes

O número de nós alocados para MapReduce que foram marcados em um estado LOST. Equivalente ao mapred.resourcemanager.NoOfLostNodes da métrica YARN.

Caso de uso: monitorar a integridade do cluster, monitorar o progresso do cluster

Unidades: Contagem

MRUnhealthyNodes

O número de nós disponíveis para trabalhos MapReduce que foram marcados em um estado UNHEALTHY. Equivalente ao mapred.resourcemanager.NoOfUnhealthyNodes da métrica YARN.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

MRDecommissionedNodes

O número de nós alocados para aplicativos MapReduce que foram marcados em um estado DECOMMISSIONED. Equivalente ao mapred.resourcemanager.NoOfDecommissionedNodes da métrica YARN.

Caso de uso: monitorar a integridade do cluster, monitorar o progresso do cluster

Unidades: Contagem

MRRebootedNodes

O número de nós disponíveis para MapReduce que foram reiniciados e marcados em um estado REBOOTED. Equivalente ao mapred.resourcemanager.NoOfRebootedNodes da métrica YARN.

Caso de uso: monitorar a integridade do cluster, monitorar o progresso do cluster

Unidades: Contagem

MultiMasterInstanceGroupNodesRunning

O número de nós principais em execução.

Caso de uso: monitorar falhas do nó principal e substituição

Unidades: Contagem

MultiMasterInstanceGroupNodesRunningPercentage

A porcentagem de nós principais em execução sobre a contagem solicitada de instâncias de nós principais.

Caso de uso: monitorar falhas do nó principal e substituição

Unidade: percentual

MultiMasterInstanceGroupNodesRequested

O número de nós principais solicitados.

Caso de uso: monitorar falhas do nó principal e substituição

Unidades: Contagem

IO

S3BytesWritten

O número de bytes gravados no Amazon S3. Essa métrica agrega somente trabalhos do MapReduce, e não se aplica a outras workload no Amazon EMR.

Caso de uso: analisar a performance do cluster, monitorar o progresso do cluster

Unidades: Contagem

S3BytesRead

O número de bytes lidos no Amazon S3. Essa métrica agrega somente trabalhos do MapReduce, e não se aplica a outras workload no Amazon EMR.

Caso de uso: analisar a performance do cluster, monitorar o progresso do cluster

Unidades: Contagem

HDFSUtilization

O percentual de armazenamento do HDFS em uso no momento.

Caso de uso: analisar a performance do cluster

Unidade: percentual

HDFSBytesRead

O número de bytes lidos do HDFS. Essa métrica agrega somente trabalhos do MapReduce, e não se aplica a outras workload no Amazon EMR.

Caso de uso: analisar a performance do cluster, monitorar o progresso do cluster

Unidades: Contagem

HDFSBytesWritten

O número de bytes gravados no HDFS. Essa métrica agrega somente trabalhos do MapReduce, e não se aplica a outras workload no Amazon EMR.

Caso de uso: analisar a performance do cluster, monitorar o progresso do cluster

Unidades: Contagem

MissingBlocks

O número de blocos em que o HDFS não tem réplicas. Esses podem ser blocos danificados.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

CorruptBlocks

O número de blocos que o HDFS reporta como corrompidos.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

TotalLoad

O número total de transferências simultâneas de dados.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

MemoryTotalMB

A quantidade total de memória no cluster.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

MemoryReservedMB

A quantidade de memória reservada.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

MemoryAvailableMB

A quantidade de memória disponível para ser alocada.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

YARNMemoryAvailablePercentage

A porcentagem de memória restante disponível para YARN (YARNMemoryAvailablePercentage = MemoryAvailableMB / MemoryTotalMB). Esse valor é útil para escalonar recursos de cluster com base no uso da memória YARN.

Unidade: percentual

MemoryAllocatedMB

A quantidade de memória alocada para o cluster.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

PendingDeletionBlocks

O número de blocos marcados para exclusão.

Caso de uso: monitorar o progresso do cluster, monitorar a integridade do cluster

Unidades: Contagem

UnderReplicatedBlocks

O número de blocos que precisam ser replicados uma ou mais vezes.

Caso de uso: monitorar o progresso do cluster, monitorar a integridade do cluster

Unidades: Contagem

DfsPendingReplicationBlocks

O status da replicação de bloco: blocos sendo replicados, idade das solicitações de replicação e solicitações de replicação sem sucesso.

Caso de uso: monitorar o progresso do cluster, monitorar a integridade do cluster

Unidades: Contagem

CapacityRemainingGB

A quantidade de capacidade de disco do HDFS restante.

Caso de uso: monitorar o progresso do cluster, monitorar a integridade do cluster

Unidades: Contagem

Veja a seguir as métricas do Hadoop 1:

Métrica Descrição
Status do cluster

IsIdle

Indica que um cluster não está mais executando nenhum trabalho, mas ainda está ativo e acumulando cobranças. É definido como 1 se nenhuma tarefa ou nenhum trabalho estiver em execução, caso contrário, é definido como 0. Esse valor é verificado em intervalos de 5 minutos, sendo que um valor de 1 indica somente que o cluster estava ocioso no momento da verificação, e não que ele ficou ocioso durante todo o período de 5 minutos. Para evitar falsos positivos, você deve gerar um alerta quando esse valor for 1 em mais de uma verificação consecutiva de 5 minutos. Por exemplo, você pode gerar um alerta para esse valor se ele for 1 por 30 minutos ou mais.

Caso de uso: monitorar a performance do cluster

Unidade: booliano

JobsRunning

O número de trabalhos no cluster que estão em execução no momento.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

JobsFailed

O número de trabalhos no cluster que apresentaram falha.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

Map/Reduce

MapTasksRunning

O número de tarefas de mapeamento em execução para cada trabalho. Se você tiver um programador instalado e vários trabalhos em execução, vários gráficos são gerados.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

MapTasksRemaining

O número de tarefas de mapeamento restantes para cada trabalho. Se você tiver um programador instalado e vários trabalhos em execução, vários gráficos são gerados. Uma tarefa de mapeamento restante não está em nenhum dos seguintes estados: Running, Killed ou Completed.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

MapSlotsOpen

A capacidade não utilizada da tarefa de mapeamento. É calculado como o número máximo de tarefas de mapeamento para um determinado cluster, menos o número total de tarefas de mapeamento em execução no momento nesse cluster.

Caso de uso: analisar a performance do cluster

Unidades: Contagem

RemainingMapTasksPerSlot

A razão entre o total de tarefas de mapeamento restantes e o total de slots de mapeamento disponíveis no cluster.

Caso de uso: analisar a performance do cluster

Unidade: razão

ReduceTasksRunning

O número de tarefas de redução em execução para cada trabalho. Se você tiver um programador instalado e vários trabalhos em execução, vários gráficos são gerados.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

ReduceTasksRemaining

O número de tarefas de redução restantes para cada trabalho. Se você tiver um programador instalado e vários trabalhos em execução, vários gráficos são gerados.

Caso de uso: monitorar o progresso do cluster

Unidades: Contagem

ReduceSlotsOpen

Capacidade não utilizada das tarefas de redução. É calculado como a capacidade máxima da tarefa de redução para um determinado cluster, menos o número total de tarefas de redução em execução no momento nesse cluster.

Caso de uso: analisar a performance do cluster

Unidades: Contagem

Status do nó

CoreNodesRunning

O número de nós core em funcionamento. Os pontos de dados para essa métrica são relatados somente quando existe um grupo de instâncias correspondente.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

CoreNodesPending

O número de nós core aguardando atribuição. Todos os nós core solicitados podem não estar disponíveis imediatamente; essa métrica reporta as solicitações pendentes. Os pontos de dados para essa métrica são relatados somente quando existe um grupo de instâncias correspondente.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

LiveDataNodes

A porcentagem de nós de dados que estão recebendo trabalho do Hadoop.

Caso de uso: monitorar a integridade do cluster

Unidade: percentual

TaskNodesRunning

O número de nós da tarefa trabalhando. Os pontos de dados para essa métrica são relatados somente quando existe um grupo de instâncias correspondente.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

TaskNodesPending

O número de nós de tarefa aguardando atribuição. Todos os nós de tarefa solicitados podem não estar disponíveis imediatamente; essa métrica reporta as solicitações pendentes. Os pontos de dados para essa métrica são relatados somente quando existe um grupo de instâncias correspondente.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

LiveTaskTrackers

O percentual dos rastreadores de tarefas que estão funcionando.

Caso de uso: monitorar a integridade do cluster

Unidade: percentual

IO

S3BytesWritten

O número de bytes gravados no Amazon S3. Essa métrica agrega somente trabalhos do MapReduce, e não se aplica a outras workload no Amazon EMR.

Caso de uso: analisar a performance do cluster, monitorar o progresso do cluster

Unidades: Contagem

S3BytesRead

O número de bytes lidos no Amazon S3. Essa métrica agrega somente trabalhos do MapReduce, e não se aplica a outras workload no Amazon EMR.

Caso de uso: analisar a performance do cluster, monitorar o progresso do cluster

Unidades: Contagem

HDFSUtilization

O percentual de armazenamento do HDFS em uso no momento.

Caso de uso: analisar a performance do cluster

Unidade: percentual

HDFSBytesRead

O número de bytes lidos do HDFS.

Caso de uso: analisar a performance do cluster, monitorar o progresso do cluster

Unidades: Contagem

HDFSBytesWritten

O número de bytes gravados no HDFS.

Caso de uso: analisar a performance do cluster, monitorar o progresso do cluster

Unidades: Contagem

MissingBlocks

O número de blocos em que o HDFS não tem réplicas. Esses podem ser blocos danificados.

Caso de uso: monitorar a integridade do cluster

Unidades: Contagem

TotalLoad

O número total atual de leitores e escritores relatados por todos os DataNodes em um cluster.

Caso de uso: diagnostique até que ponto a alta taxa de E/S pode continuar contribuindo para o desempenho insatisfatório da execução do trabalho. Os nós de operadores que executam o daemon do DataNode também devem executar tarefas de mapeamento e redução. Os valores TotalLoad persistentemente elevados ao longo do tempo podem indicar que a alta taxa de E/S é um possível fator que contribui para o desempenho insatisfatório. Os picos ocasionais nesse valor são típicos e geralmente não são indícios de problema.

Unidades: Contagem

Métricas de capacidade de cluster

As métricas a seguir indicam as capacidades atuais ou de destino de um cluster. Essas métricas só estão disponíveis quando o ajuste de escala gerenciado ou o término automático estão habilitados.

Para clusters compostos por frotas de instâncias, as métricas de capacidade de cluster são medidas em Units. Para clusters compostos por grupos de instâncias, as métricas de capacidade de cluster são medidas em Nodes ou VCPU com base no tipo de unidade usado na política de escalabilidade gerenciada. Para obter mais informações, consulte Using EMR-managed scaling no Guia de gerenciamento do Amazon EMR.

Métrica Descrição
  • TotalUnitsRequested

  • TotalNodesRequested

  • TotalVCPURequested

O número total desejado de unidades/nós/vCPUs em um cluster, conforme determinado pela escalabilidade gerenciada.

Unidades: Contagem

  • TotalUnitsRunning

  • TotalNodesRunning

  • TotalVCPURunning

O número total atual de unidades/nós/vCPUs disponíveis em um cluster em execução. Quando um redimensionamento de cluster for solicitado, essa métrica será atualizada depois que as novas instâncias forem adicionadas ou removidas do cluster.

Unidades: Contagem

  • CoreUnitsRequested

  • CoreNodesRequested

  • CoreVCPURequested

O número desejado de unidades/nós/vCPUs CORE em um cluster, conforme determinado pela escalabilidade gerenciada.

Unidades: Contagem

  • CoreUnitsRunning

  • CoreNodesRunning

  • CoreVCPURunning

O número atual de unidades/nós/vCPUs CORE em execução em um cluster.

Unidades: Contagem

  • TaskUnitsRequested

  • TaskNodesRequested

  • TaskVCPURequested

O número desejado de unidades/nós/vCPUs TASK em um cluster, conforme determinado pela escalabilidade gerenciada.

Unidades: Contagem

  • TaskUnitsRunning

  • TaskNodesRunning

  • TaskVCPURunning

O número atual de unidades/nós/vCPUs TASK em execução em um cluster.

Unidades: Contagem

O Amazon EMR emite as métricas a seguir em uma granularidade de um minuto quando você habilita o término automático usando uma política de término automático. Algumas métricas estão disponíveis somente para o Amazon EMR 6.4.0 e versões posteriores. Para saber mais sobre término automático, consulte Usar uma política de término automático.

Métrica Descrição
TotalNotebookKernels O total de kernels de cadernos em execução e ociosos no cluster.

Essa métrica está disponível somente para o Amazon EMR 6.4.0 e versões posteriores.

AutoTerminationIsClusterIdle Indica se o cluster está em uso.

O valor 0 indica que o cluster está sendo usado ativamente por um destes componentes:

  • Uma aplicação YARN

  • HDFS

  • Um caderno

  • Uma interface de usuário no cluster, como Spark History Server

O valor 1 indica que o cluster está ocioso. O Amazon EMR verifica a ociosidade contínua do cluster (AutoTerminationIsClusterIdle = 1). Quando o tempo ocioso de um cluster é igual ao valor IdleTimeout na política de término automático, o Amazon EMR termina o cluster.

Dimensões para métricas do Amazon EMR

Os dados do Amazon EMR podem ser filtrados usando qualquer uma das dimensões da tabela a seguir.

Dimensão Descrição
JobFlowId Igual ao ID do cluster, que é o identificador exclusivo de um cluster no formato j-XXXXXXXXXXXXX. Encontre esse valor clicando no cluster do console do Amazon EMR.