CloudWatch에서 Amazon EMR 지표 모니터링
지표는 각 Amazon EMR 클러스터에서 5분마다 업데이트되고 자동으로 수집되며 CloudWatch로 푸시됩니다. 이 간격은 구성할 수 없습니다. CloudWatch에서 보고되는 Amazon EMR 지표에는 요금이 부과되지 않습니다. 이 5분의 데이터 포인트 지표는 63일 동안 아카이브되며, 그 이후에는 데이터가 삭제됩니다.
Amazon EMR 지표를 사용하려면 어떻게 해야 하나요?
다음 테이블에는 Amazon EMR이 보고하는 지표의 일반적인 용도가 나와 있습니다. 모든 사용 사례를 망라한 것은 아니지만 시작하는 데 참고가 될 것입니다. Amazon EMR에서 보고하는 전체 지표 목록은 CloudWatch에서 Amazon EMR이 보고하는 지표 섹션을 참조하세요.
방법 | 관련 지표 |
---|---|
내 클러스터의 진행 상황을 추적 | RunningMapTasks , RemainingMapTasks , RunningReduceTasks 및 RemainingReduceTasks 측정치를 살펴봅니다. |
유휴 클러스터를 감지 | IsIdle 지표는 클러스터가 활성화되었지만 현재 작업을 실행하고 있지 않은지 여부를 추적합니다. 클러스터가 일정 시간(예: 30분) 동안 유휴 상태일 때 경보가 울리도록 설정할 수 있습니다. |
노드에서 저장소가 부족한 경우 감지 | MRUnhealthyNodes 지표는 하나 이상의 코어 또는 태스크 노드에서 로컬 디스크 스토리지가 부족해지고 UNHEALTHY YARN 상태로 전환되는 시점을 추적합니다. 예를 들어 코어 또는 태스크 노드의 디스크 공간이 부족하여 작업을 실행할 수 없는 경우가 이에 해당합니다. |
클러스터에서 스토리지 부족 감지 | HDFSUtilization 지표는 클러스터의 결합된 HDFS 용량을 모니터링하며, 코어 노드를 더 추가하기 위해 클러스터 크기를 조정해야 할 수 있습니다. 예를 들어 HDFS 사용률이 높아 작업 및 클러스터 상태에 영향을 미칠 수 있습니다. |
용량을 줄여 클러스터가 실행되는 경우를 감지합니다. | MRLostNodes 지표는 하나 이상의 코어 또는 태스크 노드가 프라이머리 노드와 통신할 수 없는 경우를 추적합니다. 예를 들어, 프라이머리 노드가 코어 또는 태스크 노드에 접속할 수 없습니다. |
자세한 내용은 NO_SLAVE_LEFT로 Amazon EMR 클러스터 종료 및 코어 노드 FAILED_BY_MASTER 및 AWSSupport-AnalyzeEMRLogs를 참조하세요.
Amazon EMR의 CloudWatch 지표 액세스
Amazon EMR 콘솔 또는 CloudWatch 콘솔을 사용하여 Amazon EMR이 CloudWatch에 보고하는 지표를 볼 수 있습니다. CloudWatch CLI 명령 mon-get-stats
또는 CloudWatch GetMetricStatistics
API를 사용하여 지표를 검색할 수도 있습니다. CloudWatch를 사용하여 Amazon EMR 지표를 보거나 검색하는 방법에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서를 참조하세요.
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 지표 사용 사례: 클러스터 진행 상황 모니터링 Units: Count |
MRActiveNodes |
현재 MapReduce 작업 또는 작업을 실행 중인 노드 수 YARN 지표 사용 사례: 클러스터 진행 상황 모니터링 Units: Count |
MRLostNodes |
MapReduce에 LOST 상태로 할당된 노드 수 YARN 지표 사용 사례: 클러스터 진행 상황 모니터링, 클러스터 상태 모니터링 Units: Count |
MRUnhealthyNodes |
UNHEALTHY 상태이면서 MapReduce 작업에 사용할 수 있는 노드 수 YARN 지표 사용 사례: 클러스터 진행 상황 모니터링 Units: Count |
MRDecommissionedNodes |
MapReduce 애플리케이션에 DECOMMISSIONED 상태로 할당된 노드 수 YARN 지표 사용 사례: 클러스터 상태 모니터링, 클러스터 진행 상황 모니터링 Units: Count |
MRRebootedNodes |
재부팅되어 REBOOTED 상태이면서 MapReduce에 사용할 수 있는 노드 수 YARN 지표 사용 사례: 클러스터 진행 상황 모니터링, 클러스터 상태 모니터링 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 사용을 참조하세요.
지표 | 설명 |
---|---|
|
관리형 조정에 의해 결정된 클러스터의 총 units/nodes/vCPU 대상 수입니다. Units: Count |
|
실행 중인 클러스터에서 사용 가능한 현재 총unit/node/vCPU 수입니다. 클러스터 크기 조정이 요청되면 새 인스턴스가 클러스터에 추가되거나 클러스터에서 제거된 후 이 지표가 업데이트됩니다. Units: Count |
|
관리형 조정에 의해 결정된 클러스터의 CORE unit/node/vCPU 대상 수입니다. Units: Count |
|
클러스터에서 실행 중인 현재 CORE unit/node/vCPU 수입니다. Units: Count |
|
관리형 조정에 의해 결정된 클러스터의 TASK unit/node/vCPU 대상 수입니다. Units: Count |
|
클러스터에서 실행 중인 현재 TASK unit/node/vCPU 수입니다. Units: Count |
자동 종료 정책을 사용하여 자동 종료를 활성화하면 Amazon EMR은 1분 단위로 다음 지표를 생성합니다. 일부 지표는 Amazon EMR 버전 6.4.0 이상에만 사용할 수 있습니다. 자동 종료에 대한 자세한 내용은 Amazon EMR 클러스터 정리에 대한 자동 종료 정책 사용 섹션을 참조하세요.
지표 | 설명 |
---|---|
TotalNotebookKernels |
클러스터에서 실행 중 및 유휴 상태의 노트북 커널 총 수. 이 지표는 Amazon EMR 버전 6.4.0 이상에만 사용할 수 있습니다. |
AutoTerminationIsClusterIdle |
클러스터가 사용 중인지 여부를 나타냅니다. 값이 0이면 다음 구성 요소 중 하나가 클러스터를 사용하고 있음을 나타냅니다.
값이 1이면 클러스터가 유휴 상태임을 나타냅니다. Amazon EMR은 지속적인 클러스터 유휴 상태( |
Amazon EMR 지표 차원
다음 테이블의 차원을 사용하여 Amazon EMR 데이터를 필터링할 수 있습니다.
측정기준 | 설명 |
---|---|
JobFlowId | 클러스터 ID와 동일합니다. 이는 j-XXXXXXXXXXXXX 양식의 클러스터 고유 식별자입니다. Amazon EMR 콘솔에서 클러스터를 클릭하여 이 값을 찾습니다. |