하둡에서 제공해주는 다양한 맵리듀스 빌트인 카운터들

맵리듀스에서는 실행중인 잡에 대한 통계치를 확인할 수 있는 카운터들을 제공해준다.

카운터를 활용하여 잡의 맵태스크, 리듀스태스크의 수, 맵의 출력 크기 등의 일반적인 정보들을 얻을 수도 있고, 문제에 대한 간단한 디버깅이나 병목 지점 등을 확인해볼 수도 있다.

jar 파일을 빌드하여 실행시켰을 때, 표준에러에 출력되는 무수히 많은 정보들이 이러한 카운터를 기반으로 찍히는 값들이다.

하둡에서는 맵리듀스 잡을 위한 이런 빌트인 카운터들을 만들어놓았을 뿐만 아니라 사용자가 자신의 필요에 맞게 정의하여 사용하도록 인터페이스를 제공하고 있지만, 단순하게 enum 으로 정의해서 사용하기도 한다.

아래는 빌트인 카운터들이다.


JobCounter

레퍼런스 링크 : JobCounter

이름설명
DATA_LOCAL_MAPS데이터를 가지고 있는 노드와 동일한 노드에서 실행된 맵태스크의 수
RACK_LOCAL_MAPS데이터를 가지고 있는 노드와 동일한 랙에서 실행된 맵태스크의 수
OTHER_LOCAL_MAPS데이터를 가지고 있는 노드와 다른 랙에서 실행된 맵태스크의 수
TOTAL_LAUNCHED_MAPS실행된 맵태스크의 전체 개수
NUM_FAILED_MAPS실패한 맵태스크의 수
NUM_KILLED_MAPS종료된 맵태스크의 수
MILLIS_MAPS모든 맵태스크를 수행하는데 걸린 시간
VCORES_MILLIS_MAPS모든 맵태스크가 사용한 전체 vcore 사용시간
TOTAL_LAUNCHED_REDUCES실행된 리듀스태스크의 전체 개수
NUM_FAILED_REDUCES실패한 리듀스태스크의 수
NUM_KILLED_REDUCES종료된 리듀스태스크의 수
MILLIS_REDUCES모든 리듀스태스크를 수행하는데 걸린 시간
VCORES_MILLIS_REDUCES모든 리듀스태스크들이 사용한 전체 vcore 사용시간
TOTAL_LAUNCHED_UBERTASKS실행된 우버모드 태스크의 전체 개수
NUM_UBER_SUBMAPS우버모드로 실행된 맵의 수
NUM_UBER_SUBREDUCES우버모드로 실행된 리듀스의 수
NUM_FAILED_UBERTASKS실패한 우버태스크의 수
TASKS_REQ_PREEMPT선점스케줄링을 요청한 태스크의 수


TaskCounter

레퍼런스 링크 : TaskCounter

이름설명
COMMITTED_HEAP_BYTES사용 가능한 힙 메모리의 전체 크기
SPLIT_RAW_BYTES입력 스플릿들에 대한 메테데이터의 바이트 크기
MAP_INPUT_RECORDS모든 맵태스크에서 입력으로 받은 레코드의 수
MAP_OUTPUT_BYTES모든 맵태스크에서 출력한 결과의 바이트 크기
MAP_OUTPUT_MATERIALIZED_BYTES디스크에 쓰여진 결과 바이트 크기
MAP_OUTPUT_RECORDS모든 맵태스크에서 출력한 결과의 레코드 수
MAP_SKIPPED_RECORDS전체 맵태스크에서 처리가 스킵된 레코드의 수
COMBINE_INPUT_RECORDS컴바이너에 입력된 레코드의 수
COMBINE_OUTPUT_RECORDS컴바이너가 출력한 레코드의 수
SHUFFLED_MAPS리듀서가 실행중인 노드들로 복사된 맵 출력 레코드 수
FAILED_SHUFFLE셔플 과정에서 실패한 맵 출력의 수
MERGED_MAP_OUTPUTS리듀서의 입력으로 들어가기 위해 머지된 맵 출력 레코드의 수
REDUCE_INPUT_GROUPS모든 리듀스태스크에서 처리된 키의 수
REDUCE_INPUT_RECORDS모든 리듀스태스크로 입력으로 들어온 레코드의 수
REDUCE_OUTPUT_RECORDS모든 리듀스태스크에서 출력한 결과 레코드의 수
REDUCE_SHUFFLE_BYTES리듀서로 셔플되어 들어온 맵 출력들의 전체 바이트 크기
REDUCE_SKIPPED_GROUPS모든 리듀스태스크에서 처리가 스킵된 키의 수
REDUCE_SKIPPED_RECORDS모든 리듀스태스크에서 처리가 스킵된 레코드의 수
SPILLED_RECORDS디스크로 넘어간 레코드의 수
PHYSICAL_MEMORY_BYTES전체 물리메모리 사용량
VIRTUAL_MEMORY_BYTES전체 가상메모리 사용량
CPU_MILLISECONDS태스크를 수행하는데 사용된 cpu 시간
GC_TIME_MILLISGC가 작동한 시간


FileInput(Output)FormatCounter

레퍼런스 링크 : FileInputFormatCounter, FileOutputFormatCounter

이름설명
BYTES_READ맵과 리듀스 태스크에 의해 읽혀진 바이트 크기
BYTES_WRITTEN맵과 리듀스 태스크에 의해 쓰여진 바이트 크기