빅데이터공부하기 54_1 Top N
이번글부터는 Top N 을 공부하도록하겠습니다.
개요
앞서 WordCount2의 실행결과에서 가장 높은 빈도수를 갖는 10개의 단어는?
두번째 필드가 숫자로 빈도수를 나타낸다는 전제하에 동작(범용적)
동작방식
- 각 mapper에서 들어오는 레코드들을보고 Top N개만 출력.
- Reducer에서 결국 같은 작업을 반복
- Top N개의 레코드를 가려내기위해 PriorityQueue를 사용
* 모두를 다 저장하고나서 소팅하는 것은 메모리낭비가 너무 큼
- 모든 입력레코드의 처리가 끝난 후에야 Top N개를 알 수 있으므로 Mapper와 Reducer의 cleanup 메소드에서 PriorityQueue의 내용을 출력
만일 전체 데이터를 빈도수로 소팅하고 싶다면 다른 전략이 필요
- 하둡제공 예제 프로그램중에 TeraSort라는 것의 구현을 흉내내면됨. 하둡의 벤치마크로 널리 쓰이는 프로그램
- 데이터 샘플링 후 파티션(Partitioner)을 어떤 값 기준으로 나눌지 정하는 형태. 이는 아주 흔히 쓰이는 하둡 잡 실행 전략 중의 하나
'빅데이터 > 빅데이터Hadoop' 카테고리의 다른 글
빅데이터공부하기 53-3 소스코드 (0) | 2014.11.10 |
---|---|
빅데이터공부하기 54_2 Top N (0) | 2014.11.05 |
빅데이터공부하기 53_1 word count v2 (0) | 2014.11.04 |
빅데이터공부하기 53 word count v2 (0) | 2014.11.03 |
빅데이터공부하기 52_1 위키피디아 데이터 다운로드 (0) | 2014.11.03 |