[HADOOP] 하둡과 함께 제공되는 기본 hashpartioner로 대체
HADOOP하둡과 함께 제공되는 기본 hashpartioner로 대체
나는 고르지 키를 배포하는 하둡 맵리 듀스 프로그램이 있습니다. 일부 감속기는 두 개의 키, 하나의 키 일부, 그리고 아무도 일부와 끝까지. 어떻게 별도의 감속기에 특정 키를 사용하여 각 파티션을 배포하는 하둡을 강요하는 걸까. 나는 양식의 구 고유 키를 가지고 :
0,0
0,1
0,2
1,0
1,1
1,2
2,0
2,1
2,2
및 I는 job.setNumReduceTasks 세트 (9); 하지만 hashpartitioner는 중복 키가 같은 감속기로 전송되는 원인이 유휴 일부 감속기를 떠나 같은 해시 코드에 두 개의 키를 해시 보인다.
임의의 파티션 프로그램은이 문제를 해결합니까? 그것은 각 감속기를 보장하는 임의의 감속기에 각각의 고유 한 키를 보내드립니다 것은 하나의 키를받습니다. 어떻게 활성화 및 기본값을 대체 할 수 있습니까?
편집하다:
내 출력이처럼 보이는 이유는 누군가가 설명해주십시오 수 있습니다
-rw-r--r-- 1 user supergroup 0 2018-04-19 18:58 outbin9/_SUCCESS
drwxr-xr-x - user supergroup 0 2018-04-19 18:57 outbin9/_logs
-rw-r--r-- 1 user supergroup 869 2018-04-19 18:57 outbin9/part-r-00000
-rw-r--r-- 1 user supergroup 1562 2018-04-19 18:57 outbin9/part-r-00001
-rw-r--r-- 1 user supergroup 913 2018-04-19 18:58 outbin9/part-r-00002
-rw-r--r-- 1 user supergroup 1771 2018-04-19 18:58 outbin9/part-r-00003
-rw-r--r-- 1 user supergroup 979 2018-04-19 18:58 outbin9/part-r-00004
-rw-r--r-- 1 user supergroup 880 2018-04-19 18:58 outbin9/part-r-00005
-rw-r--r-- 1 user supergroup 0 2018-04-19 18:58 outbin9/part-r-00006
-rw-r--r-- 1 user supergroup 0 2018-04-19 18:58 outbin9/part-r-00007
-rw-r--r-- 1 user supergroup 726 2018-04-19 18:58 outbin9/part-r-00008
큰 그룹의 일부-R-00001 파트 R-00003은 각각 키를 1,0 및 2,2 / 0,0 및 1,2 받았다. 그리고 그 부분-R-00006 및 부품-R-00007이 비어 알 수 있습니다.
해결법
-
==============================
1.HashPartitioner 하나는 각각의 고유 한 "키"에 대한 작업을 감소 생성 하둡의 기본 파티션 프로그램입니다. 같은 키를 가진 모든 값은 감소 함수에 대한 단일 호출에, 당신의 감속기의 동일한 인스턴스로 이동합니다.
HashPartitioner 하나는 각각의 고유 한 "키"에 대한 작업을 감소 생성 하둡의 기본 파티션 프로그램입니다. 같은 키를 가진 모든 값은 감소 함수에 대한 단일 호출에, 당신의 감속기의 동일한 인스턴스로 이동합니다.
사용자가 다른 감속기 결과의 특정 그룹을 저장하는 데 관심이 있다면, 사용자는 자신의 파티션 프로그램 구현을 작성할 수 있습니다. 그것은 일반적인 목적의 수 또는 사용자 정의는 사용자 응용 프로그램에서 사용할 것으로 예상되는 특정 데이터 유형이나 값으로 만든 수 있습니다.
사용자 정의 파티션 설정하면 사용자의 조건에 따라, 다른 감속기에 결과를 저장 할 수있는 과정입니다. 키에 의해 분할하는 파티션 프로그램을 설정하여, 우리가 그것을 보장 할 수 있습니다, 같은 키에 대한 기록은 같은 감속기로 이동합니다. 구분자는 하나의 감속기가 특정 키에 대한 모든 레코드를 수신하는 것을 보장한다.
샘플 예제 링크
from https://stackoverflow.com/questions/49933268/alternative-to-the-default-hashpartioner-provided-with-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 맵리 듀스를 사용하여 중복 값을 제거하는 방법 (0) | 2019.09.22 |
---|---|
[HADOOP] TwoDArrayWritable를 사용하여 매퍼에서 2D double 배열을 방출하는 방법 (0) | 2019.09.22 |
[HADOOP] 어떻게 하둡의 각 단계 (지도, 셔플 / 정렬 감소)의 지속 시간을 측정 할 수있다? (0) | 2019.09.22 |
[HADOOP] 커버 로스 | 클라우 데라 | KrbException : HMAC SHA1-96와 암호화 유형 AES256 CTS 모드 (0) | 2019.09.22 |
[HADOOP] MySQL의에서 HBase를에 연속 데이터 마이그레이션 (0) | 2019.09.22 |