DBILITY

hadoop total sort ( 전체 정렬 ) 본문

bigdata/hadoop

hadoop total sort ( 전체 정렬 )

DBILITY 2017. 3. 1. 18:31
반응형

보조 정렬을 테스트할 때 느낀 거지만, 데이터 분포가 고른 상태가 아니라면 하나의 리듀스 테스트에 집중이 될 텐데,

그럴 경우 개발자가 알아서 분할 가능하도록 파티셔닝을 해야 하는 등 RDBMS와 마찬가지로 데이터의 저장부터 관리,
개발자의 역량에 따라 성능이 좌우되지 않을지 생각했는데 친절하게 준비가 되어 있었다.

머리가 나쁜지 습득하는데, 시간이 오래 걸린다. 어쩌면 원래 공부하는 스타일의 차이일까.. 소설은 한번 잡고 이틀은 볼 수 있는데ㅎㅎ

 

맵리듀스는 입력 데이터의 키를 기준으로 정렬하기 때문에 하나의 파티션으로 손쉽게 정렬된다. 기본 알고리즘이 퀵 소트였던 것 같다.

데이터가 방대할 때 분산처리가 이루어져야 하는데 한 개의 리듀스 태스크만 사용할 경우 부하가 집중된다.

 

전체 정렬 순서

1. 입력 데이터를 샘플링하여 분포도를 조사

2. 분포도에 맞게 파티션 정보 생성

3. 생성된 파티션에 맞게 출력 데이터 생성

4. 출력 데이터 병합

 

InputSampler는 입력 데이터에서 특정 개수의 테이터를 추출해 키와 데이터 건수를 샘플링한다.

TotalOrderPartitioner를 제공하며 파티션 개수와 저장할 데이터의 범위를 설정할 수 있다.

 

참고 서적 : 시작하세요! 하둡프로그래밍 개정 2판(위키북스) - 정재화 지음

반응형
Comments