Hadoop Yarn ResourceManager¶
Yarn ResourceManager 메트릭 정보를 수집합니다.
설치 및 배포¶
ResourceManager는 Java로 개발되었기 때문에 jmx-exporter 방식으로 메트릭 정보를 수집할 수 있습니다.
1. ResourceManager 설정¶
1.1 jmx-exporter 다운로드¶
다운로드 주소:https://github.com/prometheus/jmx_exporter
1.2 jmx 스크립트 다운로드¶
다운로드 주소:https://github.com/lrwh/jmx-exporter/blob/main/hadoop-yarn-resourcemanager.yml
1.3 ResourceManager 시작 파라미터 조정¶
resourcemanager의 시작 파라미터에 추가
{{JAVA_GC_ARGS}} -javaagent:/opt/jmx/jmx_exporter-1.0.1.jar=localhost:17109:/opt/jmx/jmx_resource_manager.yml
1.4 ResourceManager 재시작¶
2. DataKit 수집기 설정¶
2.1 DataKit 설치¶
2.2 수집기 설정¶
jmx-exporter를 통해 metrics URL을 직접 노출할 수 있으므로, prom 수집기를 사용해 직접 수집할 수 있습니다.
DataKit 설치 디렉터리의 conf.d/samples로 이동한 뒤, prom.conf.sample을 resourcemanager.conf로 복사합니다.
cp prom.conf.sample resourcemanager.conf
resourcemanager.conf 내용을 다음과 같이 조정합니다.
urls = ["http://localhost:17109/metrics"]
source ="yarn-resourcemanager"
[inputs.prom.tags]
component = "yarn-resourcemanager"
interval = "10s"
기타 설정은 필요에 따라 조정
, 파라미터 설명은 다음과 같습니다.
- urls:
jmx-exporter메트릭 주소, 여기에는 해당 컴포넌트가 노출한 메트릭 URL을 입력합니다. - source:수집기 별칭, 구분할 수 있도록 설정하는 것을 권장합니다.
- keep_exist_metric_name: 메트릭 이름 유지
- interval:수집 간격
- inputs.prom.tags: 추가 tag
3. DataKit 재시작¶
메트릭¶
Hadoop 메트릭 세트¶
ResourceManager 메트릭은 Hadoop 메트릭 세트에 있습니다. 여기서는 주로 ResourceManager 관련 메트릭 설명을 소개합니다.
| Metrics | 설명 | 단위 |
|---|---|---|
resourcemanager_activeapplications |
ResourceManager 애플리케이션 수 |
count |
resourcemanager_activeusers |
ResourceManager 활성 사용자 수 |
count |
resourcemanager_aggregatecontainersallocated |
ResourceManager에 할당된 컨테이너 수 |
count |
resourcemanager_aggregatecontainerspreempted |
ResourceManager가 선점한 컨테이너 수 |
count |
resourcemanager_aggregatecontainersreleased |
ResourceManager가 해제한 컨테이너 수 |
count |
resourcemanager_aggregatememorymbsecondspreempted |
선점된 컨테이너가 초당 소비한 메모리량 |
B/s |
resourcemanager_aggregatenodelocalcontainersallocated |
모든 노드에서 로컬로 실행 중인 컨테이너 수 |
count |
resourcemanager_aggregateoffswitchcontainersallocated |
ResourceManager가 할당한 오프스위치 컨테이너 수 |
count |
resourcemanager_aggregateracklocalcontainersallocated |
랙 로컬 컨테이너의 집계 수 |
count |
resourcemanager_aggregatevcoresecondspreempted |
ResourceManager CPU 선점 수 |
byte |
resourcemanager_allocatedcontainers |
ResourceManager가 애플리케이션에 할당한 컨테이너 수 |
count |
resourcemanager_allocatedmb |
ResourceManager가 할당한 메모리 크기 |
B/s |
resourcemanager_allocatedvcores |
ResourceManager가 할당한 CPU 코어 수 |
count |
resourcemanager_amlaunchdelayavgtime |
애플리케이션 시작 지연 평균 시간 |
ms |
resourcemanager_amlaunchdelaynumops |
애플리케이션 시작 지연 횟수 |
count |
resourcemanager_amregisterdelayavgtime |
ResourceManager 등록 평균 지연 시간 |
ms |
resourcemanager_amregisterdelaynumops |
ResourceManager 등록 지연 횟수 |
s |
resourcemanager_amresourceusagemb |
NodeManager 컨테이너 시작 작업 수 |
count |
resourcemanager_amresourceusagevcores |
NodeManager에서 완료된 컨테이너 수 |
count |
resourcemanager_appattemptfirstcontainerallocationdelayavgtime |
NodeManager 컨테이너 실패 수 |
count |
resourcemanager_appattemptfirstcontainerallocationdelaynumops |
NodeManager 컨테이너 종료 수 |
count |
resourcemanager_appscompleted |
NodeManager 컨테이너 실행 수 |
count |
resourcemanager_appsfailed |
ResourceManager 애플리케이션 실패 수 |
count |
resourcemanager_appskilled |
ResourceManager 애플리케이션 종료 수 |
count |
resourcemanager_appspending |
실행 대기 중인 애플리케이션 수 |
count |
resourcemanager_appsrunning |
실행 중인 애플리케이션 수 |
count |
resourcemanager_appssubmitted |
ResourceManager에 제출된 애플리케이션 수 |
count |
resourcemanager_availablemb |
ResourceManager 사용 가능한 총 메모리량 |
count |
resourcemanager_availablevcores |
ResourceManager 사용 가능한 CPU 코어 수 |
count |
resourcemanager_callqueuelength |
ResourceManager 호출 큐 길이 |
count |
resourcemanager_continuousschedulingrunavgtime |
ResourceManager 연속 스케줄링 실행 평균 시간 |
ms |
resourcemanager_continuousschedulingrunimaxtime |
ResourceManager 연속 스케줄링 실행 최대 시간 |
ms |
resourcemanager_continuousschedulingrunimintime |
ResourceManager 연속 스케줄링 실행 최소 시간 |
ms |
resourcemanager_continuousschedulingruninumops |
ResourceManager 연속 스케줄링 작업 수 |
count |
resourcemanager_continuousschedulingrunmaxtime |
ResourceManager 연속 스케줄링 실행 최대 시간 |
ms |
resourcemanager_continuousschedulingrunmintime |
ResourceManager 연속 스케줄링 실행 최소 시간 |
ms |
resourcemanager_continuousschedulingrunnumops |
ResourceManager 연속 스케줄링 작업 수 |
count |
resourcemanager_deferredrpcprocessingtimenumops |
ResourceManager 지연 RPC 처리 시간 작업 수 |
count |
resourcemanager_droppedpuball |
ResourceManager puball 드롭 횟수 |
count |
resourcemanager_fairsharemb |
ResourceManager 메모리 할당량 |
count |
resourcemanager_fairsharevcores |
ResourceManager CPU 코어 할당 수 |
count |
resourcemanager_gccount |
ResourceManager 가비지 컬렉션 횟수 |
count |
resourcemanager_gccountconcurrentmarksweep |
가비지 컬렉션 마크-스윕 횟수 |
count |
resourcemanager_gccountparnew |
ParNew 가비지 컬렉터 수 |
ms |
resourcemanager_gcnuminfothresholdexceeded |
ResourceManager GC 수집 정보 임계치 초과 횟수 |
count |
resourcemanager_gcnumwarnthresholdexceeded |
ResourceManager GC 일시 정지 임계치 초과 횟수 |
count |
resourcemanager_gctimemillis |
GC 마지막 시작부터 완료까지의 시간 |
ms |
resourcemanager_gctimemillisconcurrentmarksweep |
NodeManager 로그 쓰기 성공 작업 수 |
count |
resourcemanager_gctimemillisparnew |
ParNew 시작부터 완료까지의 시간 |
ms |
resourcemanager_gctotalextrasleeptime |
ResourceManager 추가 총 수면 시간 |
ms |
resourcemanager_getgroupsavgtime |
ResourceManager 그룹 조회 평균 시간 |
count |
resourcemanager_logerror |
NodeManager 사용 중인 힙 메모리 수 |
count |
resourcemanager_logfatal |
NodeManager 메모리 최대값 |
byte |
resourcemanager_loginfailureavgtime |
ResourceManager 로그인 실패 평균 시간 |
ms |
resourcemanager_loginfailurenumops |
ResourceManager 로그인 실패 횟수 |
count |
resourcemanager_loginfo |
ResourceManager 로그 정보 수 |
count |
resourcemanager_loginsuccessavgtime |
ResourceManager 로그인 성공 평균 시간 |
ms |
resourcemanager_loginsuccessnumops |
ResourceManager 로그인 성공 횟수 |
count |
resourcemanager_logwarn |
ResourceManager 로그 경고 수 |
count |
resourcemanager_maxamsharemb |
ResourceManager 최대 AM 자원 사용량 |
byte |
resourcemanager_maxamsharevcores |
ResourceManager 최대 공유 CPU 코어 수 |
count |
resourcemanager_maxapps |
ResourceManager 최대 애플리케이션 수 |
count |
resourcemanager_memheapcommittedm |
ResourceManager 할당된 메모리 크기 |
byte |
resourcemanager_memheapmaxm |
ResourceManager 최대 메모리량 |
byte |
resourcemanager_memheapusedm |
ResourceManager 사용 중인 메모리량 |
byte |
resourcemanager_memmaxm |
ResourceManager 메모리 최대값 |
byte |
resourcemanager_memnonheapcommittedm |
ResourceManager 할당 예정으로 신고된 메모리 크기 |
byte |
resourcemanager_memnonheapmaxm |
ResourceManager 신고된 최대 메모리량 |
byte |
resourcemanager_memnonheapusedm |
ResourceManager 신고된 사용 중인 메모리량 |
byte |
resourcemanager_minsharemb |
ResourceManager 최소 자원량 |
count |
resourcemanager_minsharevcores |
ResourceManager 최소 CPU 코어 수 |
byte |
resourcemanager_nodeheartbeatavgtime |
ResourceManager 노드 하트비트 평균 시간 |
s |
resourcemanager_nodeheartbeatnumops |
ResourceManager 노드 하트비트 횟수 |
count |
resourcemanager_nodeupdatecallavgtime |
ResourceManager 노드 업데이트 응답 평균 시간 |
s |
resourcemanager_nodeupdatecallimaxtime |
ResourceManager 노드 응답 최대 시간 |
s |
resourcemanager_nodeupdatecallimintime |
ResourceManager 노드 업데이트 응답 최소 시간 |
s |
resourcemanager_nodeupdatecallinumops |
ResourceManager 노드 업데이트 응답 횟수 |
count |
resourcemanager_numactivenms |
ResourceManager 현재 살아 있는 NodeManager 수 |
count |
resourcemanager_numactivesinks |
ResourceManager 현재 살아 있는 sink 수 |
count |
resourcemanager_numactivesources |
ResourceManager 살아 있는 자원 수 |
count |
resourcemanager_numallsinks |
ResourceManager의 모든 sink 수 |
count |
resourcemanager_numallsources |
ResourceManager의 모든 자원 데이터 수 |
count |
resourcemanager_numdecommissionednms |
ResourceManager에서 폐기된 노드 수 |
count |
resourcemanager_numdecommissioningnms |
ResourceManager에서 폐기 중인 노드 수 |
count |
resourcemanager_numdroppedconnections |
ResourceManager에서 드롭된 연결 수 |
count |
resourcemanager_numlostnms |
ResourceManager에서 유실된 노드 수 |
count |
resourcemanager_numopenconnections |
ResourceManager의 열린 연결 수 |
count |
resourcemanager_numrebootednms |
ResourceManager에서 재시작된 노드 수 |
count |
resourcemanager_numshutdownnms |
ResourceManager에서 종료된 노드 수 |
count |
resourcemanager_numunhealthynms |
ResourceManager의 비정상 노드 수 |
count |
resourcemanager_pendingcontainers |
ResourceManager에서 할당 대기 중인 컨테이너 수 |
count |
resourcemanager_pendingmb |
ResourceManager에서 할당 대기 중인 자원 수 |
count |
resourcemanager_pendingvcores |
ResourceManager에서 할당 대기 중인 CPU 코어 수 |
count |
resourcemanager_publishavgtime |
ResourceManager 데이터 발행 평균 시간 |
s |
resourcemanager_rpcprocessingtimeavgtime |
ResourceManager RPC 실행 평균 시간 |
s |
resourcemanager_rpcprocessingtimenumops |
ResourceManager 실행 횟수 |
count |
resourcemanager_rpcqueuetimeavgtime |
ResourceManager RPC 응답 평균 시간 |
count |
resourcemanager_rpcqueuetimenumops |
ResourceManager RPC 응답 작업 수 |
count |
resourcemanager_rpcslowcalls |
ResourceManager RPC 느린 호출 시간 |
s |
resourcemanager_running_0 |
0초 동안 실행 중인 애플리케이션 수 |
count |
resourcemanager_running_1440 |
1440초 동안 실행 중인 애플리케이션 수 |
count |
resourcemanager_running_300 |
300초 동안 실행 중인 애플리케이션 수 |
count |
resourcemanager_running_60 |
60초 동안 실행 중인 애플리케이션 수 |
count |
resourcemanager_securityenabled |
ResourceManager 보안 메커니즘 활성화 수 |
count |
resourcemanager_sentbytes |
ResourceManager가 전송한 바이트 수 |
byte |
resourcemanager_snapshotavgtime |
ResourceManager 데이터 스냅샷 평균 시간 |
s |
resourcemanager_snapshotnumops |
ResourceManager 데이터 스냅샷 작업 수 |
count |
resourcemanager_steadyfairsharemb |
ResourceManager 가중 공유 메모리량 |
byte |
resourcemanager_steadyfairsharevcores |
ResourceManager 가중 공유 CPU 코어 수 |
count |
resourcemanager_threadsblocked |
ResourceManager 스레드 차단 수 |
count |
resourcemanager_threadsnew |
ResourceManager 새로 생성된 스레드 수 |
count |
resourcemanager_threadsrunnable |
ResourceManager 실행 중인 스레드 수 |
count |
resourcemanager_threadsterminated |
ResourceManager 종료된 스레드 수 |
count |
resourcemanager_threadstimedwaiting |
ResourceManager 타임아웃 대기 스레드 수 |
count |
resourcemanager_threadswaiting |
ResourceManager 대기 중인 스레드 수 |
count |
resourcemanager_updatethreadrunavgtime |
ResourceManager 업데이트 스레드 평균 시간 |
s |
resourcemanager_updatethreadrunimaxtime |
ResourceManager 스레드 업데이트 최대 시간 |
s |
resourcemanager_updatethreadrunimintime |
ResourceManager 스레드 업데이트 최소 시간 |
s |
resourcemanager_updatethreadruninumops |
ResourceManager 스레드 업데이트 작업 수 |
count |
resourcemanager_updatethreadrunmaxtime |
ResourceManager 스레드 업데이트 최대 시간 |
s |
resourcemanager_updatethreadrunmintime |
ResourceManager 스레드 업데이트 최소 시간 |
s |
resourcemanager_updatethreadrunnumops |
ResourceManager 스레드 업데이트 작업 수 |
count |