[HADOOP] MRJob이 내 키를 정렬하는 이유는 무엇입니까?
HADOOPMRJob이 내 키를 정렬하는 이유는 무엇입니까?
상당히 큰 MRJob 작업 (1,755,638 개의 키)을 실행하고 있으며 키는 분류기에 순서대로 기록됩니다. 하둡이 해시 파티 셔 너를 사용하도록 지정하더라도 다음과 같이 발생합니다.
class SubClass(MRJob):
PARTITIONER = "org.apache.hadoop.mapred.lib.HashPartitioner"
...
키 정렬을 요구하지 않을 때 키가 정렬되는 이유를 이해하지 못합니다.
해결법
-
==============================
1.HashPartitioner는 파티 셔 너를 명시 적으로 지정하지 않으면 기본적으로 사용됩니다.
HashPartitioner는 파티 셔 너를 명시 적으로 지정하지 않으면 기본적으로 사용됩니다.
-
==============================
2.키는 기본적으로 정렬되지 않지만 데이터 세트가 작은 경우 HashPartitioner가 정렬 키 모양을 제공합니다. 데이터 세트의 크기를 50M에서 10G로 늘리면 키 정렬이 중지되었습니다.
키는 기본적으로 정렬되지 않지만 데이터 세트가 작은 경우 HashPartitioner가 정렬 키 모양을 제공합니다. 데이터 세트의 크기를 50M에서 10G로 늘리면 키 정렬이 중지되었습니다.
-
==============================
3.MR은 키 / 값 쌍을 키별로 정렬하므로 주어진 키의 모든 값이 감속기로 함께 전달 될 수 있습니다. 실제로 reduce () 메소드에 전달 된 Iterable은 새로운 키를 찾을 때까지 정렬 된 목록을 읽은 다음 반복을 중지합니다. 그렇기 때문에 키가 항상 순서대로 나타납니다.
MR은 키 / 값 쌍을 키별로 정렬하므로 주어진 키의 모든 값이 감속기로 함께 전달 될 수 있습니다. 실제로 reduce () 메소드에 전달 된 Iterable은 새로운 키를 찾을 때까지 정렬 된 목록을 읽은 다음 반복을 중지합니다. 그렇기 때문에 키가 항상 순서대로 나타납니다.
from https://stackoverflow.com/questions/42078886/why-is-mrjob-sorting-my-keys by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] HDFS 대신 로컬 디스크의 데이터에서 Hive에 외부 테이블을 만드는 방법은 무엇입니까? (0) | 2019.09.08 |
---|---|
[HADOOP] fs.defaultFS는 로컬 호스트의 포트 8020 만 수신합니다 (0) | 2019.09.07 |
[HADOOP] 그룹화 쿼리에서 조인 작업 제거 (0) | 2019.09.07 |
[HADOOP] 메소드 cancel () 및 메소드 인터럽트 ()가 중복 작업을 수행하는지 여부 (0) | 2019.09.07 |
[HADOOP] Apache Pig-가방을 읽을 수 없음 (0) | 2019.09.07 |