CloudWatch에서 Amazon EMR 지표 모니터링 - Amazon EMR

CloudWatch에서 Amazon EMR 지표 모니터링

지표는 각 Amazon EMR 클러스터에서 5분마다 업데이트되고 자동으로 수집되며 CloudWatch로 푸시됩니다. 이 간격은 구성할 수 없습니다. CloudWatch에서 보고되는 Amazon EMR 지표에는 요금이 부과되지 않습니다. 이 5분의 데이터 포인트 지표는 63일 동안 아카이브되며, 그 이후에는 데이터가 삭제됩니다.

Amazon EMR 지표를 사용하려면 어떻게 해야 하나요?

다음 테이블에는 Amazon EMR이 보고하는 지표의 일반적인 용도가 나와 있습니다. 모든 사용 사례를 망라한 것은 아니지만 시작하는 데 참고가 될 것입니다. Amazon EMR에서 보고하는 전체 지표 목록은 CloudWatch에서 Amazon EMR이 보고하는 지표 섹션을 참조하세요.

방법 관련 지표
내 클러스터의 진행 상황을 추적 RunningMapTasks, RemainingMapTasks, RunningReduceTasksRemainingReduceTasks 측정치를 살펴봅니다.
유휴 클러스터를 감지 IsIdle 지표는 클러스터가 활성화되었지만 현재 작업을 실행하고 있지 않은지 여부를 추적합니다. 클러스터가 일정 시간(예: 30분) 동안 유휴 상태일 때 경보가 울리도록 설정할 수 있습니다.
노드에서 저장소가 부족한 경우 감지 MRUnhealthyNodes 지표는 하나 이상의 코어 또는 태스크 노드에서 로컬 디스크 스토리지가 부족해지고 UNHEALTHY YARN 상태로 전환되는 시점을 추적합니다. 예를 들어 코어 또는 태스크 노드의 디스크 공간이 부족하여 작업을 실행할 수 없는 경우가 이에 해당합니다.
클러스터에서 스토리지 부족 감지 HDFSUtilization 지표는 클러스터의 결합된 HDFS 용량을 모니터링하며, 코어 노드를 더 추가하기 위해 클러스터 크기를 조정해야 할 수 있습니다. 예를 들어 HDFS 사용률이 높아 작업 및 클러스터 상태에 영향을 미칠 수 있습니다.
용량을 줄여 클러스터가 실행되는 경우를 감지합니다. MRLostNodes 지표는 하나 이상의 코어 또는 태스크 노드가 프라이머리 노드와 통신할 수 없는 경우를 추적합니다. 예를 들어, 프라이머리 노드가 코어 또는 태스크 노드에 접속할 수 없습니다.

자세한 내용은 NO_SLAVE_LEFT로 Amazon EMR 클러스터 종료 및 코어 노드 FAILED_BY_MASTERAWSSupport-AnalyzeEMRLogs를 참조하세요.

Amazon EMR의 CloudWatch 지표 액세스

Amazon EMR 콘솔 또는 CloudWatch 콘솔을 사용하여 Amazon EMR이 CloudWatch에 보고하는 지표를 볼 수 있습니다. CloudWatch CLI 명령 mon-get-stats 또는 CloudWatch GetMetricStatistics API를 사용하여 지표를 검색할 수도 있습니다. CloudWatch를 사용하여 Amazon EMR 지표를 보거나 검색하는 방법에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서를 참조하세요.

Console
콘솔을 사용하여 지표를 보는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/emr에서 Amazon EMR 콘솔을 엽니다.

  2. 왼쪽 탐색 창의 EMR on EC2에서 클러스터를 선택하고 지표를 볼 클러스터를 선택합니다. 그러면 클러스터 세부 정보 페이지가 열립니다.

  3. 클러스터 세부 정보 페이지에서 모니터링 탭을 선택합니다. 클러스터의 진행 상황 및 상태에 대한 보고서를 로드하려면 클러스터 상태, 노드 상태 또는 입력 및 출력 옵션 중 하나를 선택합니다.

  4. 확인할 지표를 선택한 후 각 그래프를 확대할 수 있습니다. 그래프의 기간을 필터링하려면 미리 채워진 옵션을 선택하거나 사용자 지정을 선택합니다.

CloudWatch에서 Amazon EMR이 보고하는 지표

다음 테이블에는 콘솔에서 Amazon EMR이 보고하고 CloudWatch에 푸시하는 모든 지표가 나열되어 있습니다.

Amazon EMR 지표

Amazon EMR은 여러 지표에 대한 데이터를 CloudWatch로 보냅니다. 모든 Amazon EMR 클러스터가 5분 간격으로 지표를 자동으로 전송합니다. 측정치는 2주 간 보관되고 그 후에는 삭제됩니다.

AWS/ElasticMapReduce 네임스페이스에 포함된 지표는 다음과 같습니다.

참고

Amazon EMR은 클러스터에서 지표를 가져옵니다. 이때 클러스터에 도달할 수 없는 경우에는 클러스터를 다시 사용할 수 있을 때까지 아무런 지표도 보고되지 않습니다.

Hadoop 2.x 버전을 실행하는 클러스터에 대해 사용할 수 있는 지표는 다음과 같습니다.

지표 설명
클러스터 상태

IsIdle

클러스터가 더 이상 작업을 실행하지 않지만 여전히 활성 상태로 요금이 발생하고 있다는 것을 나타냅니다. 아무런 작업도 실행되고 있지 않으면 1로 설정되고, 그 외에는 0으로 설정됩니다. 이 값은 5분 주기로 검사하며, 값이 1일 때는 클러스터가 검사 시에만 유휴 상태일 뿐 전체 5분간 유휴 상태라는 것을 의미하지는 않습니다. 오탐지를 방지하기 위해서는 이 값이 5분 주기의 연속 검사 1회를 넘어 1을 유지할 때 경보를 알려야 합니다. 예를 들어 30분 이상 1을 유지하는 경우 이 값에 대한 경보를 제기할 수 있습니다.

사용 사례: 클러스터 성능 모니터링

단위: 부울

ContainerAllocated

ResourceManager에서 할당된 리소스 컨테이너 수

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

ContainerReserved

예약된 컨테이너 수

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

ContainerPending

대기열에서 아직 할당되지 않은 컨테이너 수

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

ContainerPendingRatio

대기 중인 컨테이너와 할당된 컨테이너의 비율(ContainerPendingRatio = ContainerPending / ContainerAllocated). ContainerAllocated가 0이면 ContainerPendingRatio는 ContainerPending과 같습니다. ContainerPendingRatio 값은 비율이 아닌 숫자를 나타냅니다. 이 값은 컨테이너 할당 동작에 따라 클러스터 리소스를 조정하는 데 유용합니다.

Units: Count

AppsCompleted

완료 상태로 YARN에게 제출된 애플리케이션 수

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

AppsFailed

미완료 상태로 YARN에게 제출된 애플리케이션 수

사용 사례: 클러스터 진행 상황 모니터링, 클러스터 상태 모니터링

Units: Count

AppsKilled

종료 상태로 YARN에게 제출된 애플리케이션 수

사용 사례: 클러스터 진행 상황 모니터링, 클러스터 상태 모니터링

Units: Count

AppsPending

대기 상태로 YARN에게 제출된 애플리케이션 수

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

AppsRunning

실행 상태로 YARN에게 제출된 애플리케이션 수

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

AppsSubmitted

YARN에게 제출된 애플리케이션 수

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

노드 상태

CoreNodesRunning

작업 중인 코어 노드 수. 이 지표의 데이터 포인트는 해당하는 인스턴스 그룹이 존재하는 경우에만 보고됩니다.

사용 사례: 클러스터 상태 모니터링

Units: Count

CoreNodesPending

할당 대기 중인 코어 노드 수. 코어 노드를 요청한다고 해서 즉시 모두 제공되는 것은 아닙니다. 이때 이 지표가 대기 중인 요청 수를 보고합니다. 이 지표의 데이터 포인트는 해당하는 인스턴스 그룹이 존재하는 경우에만 보고됩니다.

사용 사례: 클러스터 상태 모니터링

Units: Count

LiveDataNodes

하둡에서 작업을 수신 중인 데이터 노드 비율

사용 사례: 클러스터 상태 모니터링

단위: 백분율

MRTotalNodes

현재 MapReduce 작업에 사용할 수 있는 노드 수 YARN 지표 mapred.resourcemanager.TotalNodes와 동등합니다.

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

MRActiveNodes

현재 MapReduce 작업 또는 작업을 실행 중인 노드 수 YARN 지표 mapred.resourcemanager.NoOfActiveNodes와 동등합니다.

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

MRLostNodes

MapReduce에 LOST 상태로 할당된 노드 수 YARN 지표 mapred.resourcemanager.NoOfLostNodes와 동등합니다.

사용 사례: 클러스터 진행 상황 모니터링, 클러스터 상태 모니터링

Units: Count

MRUnhealthyNodes

UNHEALTHY 상태이면서 MapReduce 작업에 사용할 수 있는 노드 수 YARN 지표 mapred.resourcemanager.NoOfUnhealthyNodes와 동등합니다.

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

MRDecommissionedNodes

MapReduce 애플리케이션에 DECOMMISSIONED 상태로 할당된 노드 수 YARN 지표 mapred.resourcemanager.NoOfDecommissionedNodes와 동등합니다.

사용 사례: 클러스터 상태 모니터링, 클러스터 진행 상황 모니터링

Units: Count

MRRebootedNodes

재부팅되어 REBOOTED 상태이면서 MapReduce에 사용할 수 있는 노드 수 YARN 지표 mapred.resourcemanager.NoOfRebootedNodes와 동등합니다.

사용 사례: 클러스터 진행 상황 모니터링, 클러스터 상태 모니터링

Units: Count

MultiMasterInstanceGroupNodesRunning

실행 중인 마스터 노드의 수입니다.

사용 사례: 마스터 노드 장애 및 교체 모니터링

Units: Count

MultiMasterInstanceGroupNodesRunningPercentage

요청된 수의 마스터 노드 인스턴스에서 실행 중인 마스터 노드의 백분율입니다.

사용 사례: 마스터 노드 장애 및 교체 모니터링

단위: 백분율

MultiMasterInstanceGroupNodesRequested

요청된 마스터 노드의 수입니다.

사용 사례: 마스터 노드 장애 및 교체 모니터링

Units: Count

IO

S3BytesWritten

Amazon S3에 기록된 바이트 수입니다. 이 지표는 MapReduce 작업만 집계하며, Amazon EMR의 다른 워크로드에는 적용되지 않습니다.

사용 사례: 클러스터 성능 분석, 클러스터 진행 상황 모니터링

Units: Count

S3BytesRead

Amazon S3에서 읽은 바이트 수입니다. 이 지표는 MapReduce 작업만 집계하며, Amazon EMR의 다른 워크로드에는 적용되지 않습니다.

사용 사례: 클러스터 성능 분석, 클러스터 진행 상황 모니터링

Units: Count

HDFSUtilization

현재 사용 중인 HDFS 스토리지 비율

사용 사례: 클러스터 성능 분석

단위: 백분율

HDFSBytesRead

HDFS에서 읽어온 바이트 수 이 지표는 MapReduce 작업만 집계하며, Amazon EMR의 다른 워크로드에는 적용되지 않습니다.

사용 사례: 클러스터 성능 분석, 클러스터 진행 상황 모니터링

Units: Count

HDFSBytesWritten

HDFS에 작성된 바이트 수 이 지표는 MapReduce 작업만 집계하며, Amazon EMR의 다른 워크로드에는 적용되지 않습니다.

사용 사례: 클러스터 성능 분석, 클러스터 진행 상황 모니터링

Units: Count

MissingBlocks

HDFS에 복제본이 없는 블록 수. 이는 손상된 블록일 수 있습니다.

사용 사례: 클러스터 상태 모니터링

Units: Count

CorruptBlocks

HDFS가 손상된 것으로 보고하는 블록 수

사용 사례: 클러스터 상태 모니터링

Units: Count

TotalLoad

동시 데이터 전송 총 수

사용 사례: 클러스터 상태 모니터링

Units: Count

MemoryTotalMB

클러스터의 총 메모리 크기

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

MemoryReservedMB

예약된 메모리 크기

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

MemoryAvailableMB

할당 가능한 메모리 크기

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

YARNMemoryAvailablePercentage

YARN에 사용할 수 있는 잔여 메모리 비율(YARNMemoryAvailablePercentage = MemoryAvailableMB / MemoryTotalMB). 이 값은 YARN 메모리 사용량을 기준으로 클러스터 리소스를 조정하는 데 유용합니다.

단위: 백분율

MemoryAllocatedMB

클러스터에 할당된 메모리 크기

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

PendingDeletionBlocks

삭제 표시된 블록 수

사용 사례: 클러스터 진행 상황 모니터링, 클러스터 상태 모니터링

Units: Count

UnderReplicatedBlocks

1회 이상 복제해야 하는 블록 수

사용 사례: 클러스터 진행 상황 모니터링, 클러스터 상태 모니터링

Units: Count

DfsPendingReplicationBlocks

블록 복제 상태: 복제 중인 블록, 복제 요청의 경과 시간, 성공하지 못한 복제 요청

사용 사례: 클러스터 진행 상황 모니터링, 클러스터 상태 모니터링

Units: Count

CapacityRemainingGB

남아있는 HDFS 디스크 용량 크기

사용 사례: 클러스터 진행 상황 모니터링, 클러스터 상태 모니터링

Units: Count

다음은 하둡 1 지표입니다.

지표 설명
클러스터 상태

IsIdle

클러스터가 더 이상 작업을 실행하지 않지만 여전히 활성 상태로 요금이 발생하고 있다는 것을 나타냅니다. 아무런 작업도 실행되고 있지 않으면 1로 설정되고, 그 외에는 0으로 설정됩니다. 이 값은 5분 주기로 검사하며, 값이 1일 때는 클러스터가 검사 시에만 유휴 상태일 뿐 전체 5분간 유휴 상태라는 것을 의미하지는 않습니다. 오탐지를 방지하기 위해서는 이 값이 5분 주기의 연속 검사 1회를 넘어 1을 유지할 때 경보를 알려야 합니다. 예를 들어 30분 이상 1을 유지하는 경우 이 값에 대한 경보를 제기할 수 있습니다.

사용 사례: 클러스터 성능 모니터링

단위: 부울

JobsRunning

클러스터에서 현재 실행 중인 작업 수

사용 사례: 클러스터 상태 모니터링

Units: Count

JobsFailed

클러스터에서 실패한 작업 수

사용 사례: 클러스터 상태 모니터링

Units: Count

맵/감소

MapTasksRunning

각 작업마다 실행 중인 맵 태스크 수. 스케줄러를 설치하여 여러 작업을 실행 중인 경우에는 다수의 그래프가 생성됩니다.

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

MapTasksRemaining

각 작업마다 남아있는 맵 태스크 수. 스케줄러를 설치하여 여러 작업을 실행 중인 경우에는 다수의 그래프가 생성됩니다. 남아있는 맵 태스크란 Running, Killed 또는 Completed 상태가 아닌 태스크를 말합니다.

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

MapSlotsOpen

사용하지 않은 맵 태스크 용량. 이 용량은 임의 클러스터에서 현재 실행 중인 전체 맵 태스크 수를 뺀 최대 맵 태스크 수로 계산됩니다.

사용 사례: 클러스터 성능 분석

Units: Count

RemainingMapTasksPerSlot

클러스터에서 남아있는 전체 맵 작업과 사용할 수 있는 전체 맵 슬롯의 비율

사용 사례: 클러스터 성능 분석

단위: 비율

ReduceTasksRunning

각 작업마다 실행 중인 reduce 작업 수. 스케줄러를 설치하여 여러 작업을 실행 중인 경우에는 다수의 그래프가 생성됩니다.

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

ReduceTasksRemaining

각 작업마다 남아있는 reduce 작업 수. 스케줄러를 설치하여 여러 작업을 실행 중인 경우에는 다수의 그래프가 생성됩니다.

사용 사례: 클러스터 진행 상황 모니터링

Units: Count

ReduceSlotsOpen

사용하지 않은 reduce 작업 용량. 이 용량은 임의 클러스터에서 현재 실행 중인 reduce 작업 수를 뺀 최대 reduce 작업 용량으로 계산됩니다.

사용 사례: 클러스터 성능 분석

Units: Count

노드 상태

CoreNodesRunning

작업 중인 코어 노드 수. 이 지표의 데이터 포인트는 해당하는 인스턴스 그룹이 존재하는 경우에만 보고됩니다.

사용 사례: 클러스터 상태 모니터링

Units: Count

CoreNodesPending

할당 대기 중인 코어 노드 수. 코어 노드를 요청한다고 해서 즉시 모두 제공되는 것은 아닙니다. 이때 이 지표가 대기 중인 요청 수를 보고합니다. 이 지표의 데이터 포인트는 해당하는 인스턴스 그룹이 존재하는 경우에만 보고됩니다.

사용 사례: 클러스터 상태 모니터링

Units: Count

LiveDataNodes

하둡에서 작업을 수신 중인 데이터 노드 비율

사용 사례: 클러스터 상태 모니터링

단위: 백분율

TaskNodesRunning

작업 중인 작업 노드 수. 이 지표의 데이터 포인트는 해당하는 인스턴스 그룹이 존재하는 경우에만 보고됩니다.

사용 사례: 클러스터 상태 모니터링

Units: Count

TaskNodesPending

할당 대기 중인 작업 노드 수. 작업 노드를 요청한다고 해서 즉시 모두 제공되는 것은 아닙니다. 이때 이 지표가 대기 중인 요청 수를 보고합니다. 이 지표의 데이터 포인트는 해당하는 인스턴스 그룹이 존재하는 경우에만 보고됩니다.

사용 사례: 클러스터 상태 모니터링

Units: Count

LiveTaskTrackers

실행 중인 태스크 트래커 비율

사용 사례: 클러스터 상태 모니터링

단위: 백분율

IO

S3BytesWritten

Amazon S3에 기록된 바이트 수입니다. 이 지표는 MapReduce 작업만 집계하며, Amazon EMR의 다른 워크로드에는 적용되지 않습니다.

사용 사례: 클러스터 성능 분석, 클러스터 진행 상황 모니터링

Units: Count

S3BytesRead

Amazon S3에서 읽은 바이트 수입니다. 이 지표는 MapReduce 작업만 집계하며, Amazon EMR의 다른 워크로드에는 적용되지 않습니다.

사용 사례: 클러스터 성능 분석, 클러스터 진행 상황 모니터링

Units: Count

HDFSUtilization

현재 사용 중인 HDFS 스토리지 비율

사용 사례: 클러스터 성능 분석

단위: 백분율

HDFSBytesRead

HDFS에서 읽어온 바이트 수

사용 사례: 클러스터 성능 분석, 클러스터 진행 상황 모니터링

Units: Count

HDFSBytesWritten

HDFS에 작성된 바이트 수

사용 사례: 클러스터 성능 분석, 클러스터 진행 상황 모니터링

Units: Count

MissingBlocks

HDFS에 복제본이 없는 블록 수. 이는 손상된 블록일 수 있습니다.

사용 사례: 클러스터 상태 모니터링

Units: Count

TotalLoad

클러스터의 모든 DataNodes가 보고하는 현재 리더 및 라이터의 총 수.

사용 사례: 높은 I/O가 작업 실행 성능 저하에 기여하는 정도를 진단합니다. DataNode 데몬에서 실행되는 작업자 노드 역시 맵 및 reduce 작업을 수행해야 합니다. 시간이 지나도 지속적으로 높은 TotalLoad 값은 높은 I/O가 성능 저하의 원인일 가능성을 나타낼 수 있습니다. 이 값이 이따금 급증하는 것은 일반적인 것이며, 보통은 문제를 나타내지 않습니다.

Units: Count

클러스터 용량 지표

다음 지표는 클러스터의 현재 또는 대상 용량을 나타냅니다. 이러한 지표는 Managed Scaling 또는 자동 종료가 활성화된 경우에만 사용할 수 있습니다.

인스턴스 플릿으로 구성된 클러스터의 경우, 클러스터 용량 지표는 Units에서 측정됩니다. 인스턴스 그룹으로 구성된 클러스터의 경우, 클러스터 용량 지표는 관리형 조정 정책에 사용된 단위 유형을 기반으로 하는 VCPU에서 또는 Nodes에서 측정됩니다. 자세한 내용은 Amazon EMR 관리 안내서EMR Managed Scaling 사용을 참조하세요.

지표 설명
  • TotalUnitsRequested

  • TotalNodesRequested

  • TotalVCPURequested

관리형 조정에 의해 결정된 클러스터의 총 units/nodes/vCPU 대상 수입니다.

Units: Count

  • TotalUnitsRunning

  • TotalNodesRunning

  • TotalVCPURunning

실행 중인 클러스터에서 사용 가능한 현재 총unit/node/vCPU 수입니다. 클러스터 크기 조정이 요청되면 새 인스턴스가 클러스터에 추가되거나 클러스터에서 제거된 후 이 지표가 업데이트됩니다.

Units: Count

  • CoreUnitsRequested

  • CoreNodesRequested

  • CoreVCPURequested

관리형 조정에 의해 결정된 클러스터의 CORE unit/node/vCPU 대상 수입니다.

Units: Count

  • CoreUnitsRunning

  • CoreNodesRunning

  • CoreVCPURunning

클러스터에서 실행 중인 현재 CORE unit/node/vCPU 수입니다.

Units: Count

  • TaskUnitsRequested

  • TaskNodesRequested

  • TaskVCPURequested

관리형 조정에 의해 결정된 클러스터의 TASK unit/node/vCPU 대상 수입니다.

Units: Count

  • TaskUnitsRunning

  • TaskNodesRunning

  • TaskVCPURunning

클러스터에서 실행 중인 현재 TASK unit/node/vCPU 수입니다.

Units: Count

자동 종료 정책을 사용하여 자동 종료를 활성화하면 Amazon EMR은 1분 단위로 다음 지표를 생성합니다. 일부 지표는 Amazon EMR 버전 6.4.0 이상에만 사용할 수 있습니다. 자동 종료에 대한 자세한 내용은 Amazon EMR 클러스터 정리에 대한 자동 종료 정책 사용 섹션을 참조하세요.

지표 설명
TotalNotebookKernels 클러스터에서 실행 중 및 유휴 상태의 노트북 커널 총 수.

이 지표는 Amazon EMR 버전 6.4.0 이상에만 사용할 수 있습니다.

AutoTerminationIsClusterIdle 클러스터가 사용 중인지 여부를 나타냅니다.

값이 0이면 다음 구성 요소 중 하나가 클러스터를 사용하고 있음을 나타냅니다.

  • YARN 애플리케이션

  • HDFS

  • 노트북

  • 클러스터 내 UI(예: Spark 기록 서버)

값이 1이면 클러스터가 유휴 상태임을 나타냅니다. Amazon EMR은 지속적인 클러스터 유휴 상태(AutoTerminationIsClusterIdle=1)를 확인합니다. 클러스터의 유휴 시간이 자동 종료 정책의 IdleTimeout 값과 같으면 Amazon EMR은 클러스터를 종료합니다.

Amazon EMR 지표 차원

다음 테이블의 차원을 사용하여 Amazon EMR 데이터를 필터링할 수 있습니다.

측정기준 설명
JobFlowId 클러스터 ID와 동일합니다. 이는 j-XXXXXXXXXXXXX 양식의 클러스터 고유 식별자입니다. Amazon EMR 콘솔에서 클러스터를 클릭하여 이 값을 찾습니다.