2010-07-19 1 views
5

하둡에서는 보조 정렬 메커니즘을 사용하여 값이 감소기에 전송되기 전에 정렬 할 수 있습니다.2 차 정렬에 적합한 키 클래스는 무엇입니까?

Hadoop에서이 작업을 수행하는 방법은 값을 추가하여 키에 정렬 한 다음 정렬 시스템에 연결하는 사용자 정의 그룹 및 키 비교 메소드를 보유하는 것입니다.

따라서 본질적으로 실제 키와 정렬 기준 값으로 구성된 키가 있어야합니다. 이 작업을 충분히 빠르게 수행하려면 그룹 및 키 비교 방법에 필요한 별도의 파트로 분해하기 쉬운 복합 키를 만드는 방법이 필요합니다.

가장 효과적인 방법은 무엇입니까? 이 단계에서 도움이되는 "out-of-the-box"Hadoop 클래스가 있습니까? 아니면 각 map-reduce 단계에 대해 별도의 키 클래스를 만들어야합니까?

키가 실제로 여러 부분으로 구성된 합성물 (분할기로 인해 별도로 필요함) 인 경우 어떻게해야합니까?

당신은 무엇을 추천하십니까?

P. 나는 "secondary-sort"라는 태그를 추가하고 싶었지만 그렇게할만한 담당자는 아직 없다.

+1

거기에 (태그를 추가했습니다) :-) –

+0

태그를 추가해 주셔서 감사합니다. –

+0

간단한 질문을 추가 하시겠습니까? – Sudarshan

답변

0

.... 당신은 다시 분할 및 그룹화하는 방식의 키를 변경해야하고, thisbasicakly 당신이 키에 파티션에 대한 비교 메서드를 재정 및 그룹화 전체 1 개 이상의 데이터 유형을 넣어 것을 의미한다

- 키를 직렬화/비 직렬화 할 수 있으며 입력 데이터를 객체 또는 빈으로 처리 할 수 ​​있습니다. 두 번째 정렬의 강력한 형식의 강력한 코드를 원할 경우 ...

- 더 간단한 시나리오의 경우 "#"기호를 사이에 넣으십시오 가치!

여기에 큰 높은 수준의 기사가 :이 상황에 모든 시간을 실행하고 사용자 정의 복합 키 클래스를 작성 피곤했다

http://pkghosh.wordpress.com/2011/04/13/map-reduce-secondary-sort-does-it-all/

0

볼 수 있습니다, 하나는 문자열 형식이고 다른 하나는 정수 타입이었다. 내 사용자 지정 WritableComparable 작성 및 compareTo 메서드에서 내 논리를 썼습니다. 실제로 우리의 정렬 논리를 사용자 정의 할 수 있으므로 내 관점에서 보면 가장 좋은 방법입니다.