[HADOOP] MapReduce 작업 출력 정렬 순서
HADOOPMapReduce 작업 출력 정렬 순서
내 mapreduce 작업에서 감속기 부분의 출력이 키에 의해 정렬된다는 것을 알 수 있습니다.
그래서 만약 내가 reducers의 번호를 10으로 설정하면, 출력 디렉토리는 10 개의 파일을 포함하고 각 출력 파일은 정렬 된 데이터를 가지게됩니다.
내가 여기에 올리는 이유는 모든 파일이 데이터를 정렬했지만 이러한 파일 자체는 정렬되지 않는다는 것입니다. 예 : part-000 * 파일이 0부터 시작하여 zzzz에서 끝나는 시나리오가 있습니다. 텍스트를 키로 사용한다고 가정합니다.
나는 파일 내의 파일조차도 파일 1이 있어야하고 마지막 파일 부분 - 00009는 zzzz 또는 적어도> a를 가진 항목을 가져야한다고 가정하고있었습니다.
모든 영문자가 균일하게 분포 된 키를 가지고 있다고 가정합니다.
누군가가 왜 어떤 빛을 던져서 그런 행동을 할 수 있겠습니까?
해결법
-
==============================
1.다음 방법을 사용하여 전역 정렬 파일 (기본적으로 원하는 파일)을 얻을 수 있습니다.
다음 방법을 사용하여 전역 정렬 파일 (기본적으로 원하는 파일)을 얻을 수 있습니다.
-
==============================
2.총 정렬
총 정렬
특정 키의 모든 키 값 쌍은 특정 감속기에 도달합니다. 이것은 Mapper 레벨의 Partitioners를 통해 발생합니다. 매퍼 수준의 Combiners는 Semi reducers로 작동하고 특정 키의 값을 Reducer로 보냅니다. HashPartitioner는 축소 기의 수를 결정하는 데 가장 적합한 분할 자입니다.
감속기 출력은 키를 기반으로 정렬 된 모든 출력을 갖는 단일 파일입니다.
보조 정렬
지도 출력 키의 정렬 방법을 정의하는 데 사용됩니다. 매퍼 레벨에서 작동합니다. 이 경우 키와 함께 값의 순서를 제어 할 수 있습니다. 정렬은 둘 이상의 필드 값에서 수행 할 수 있습니다.
총 주문 정렬 및 보조 정렬을 살펴보십시오.
-
==============================
3.
Q :all the files have sorted data but these files itself are not sorted..
Ans : 사용자 지정 Hashpartitioner는 기본적으로 중간 출력 (매퍼에서)을 분할하는 데 사용됩니다.
전의:
If the intermediate values are 3,4,5,6,7,8,9,10,11 Then the data will be partitioned into (lets say) Reducer: R1{7,4,10} R2{5,11,8} R3{9,6,3}
이제 플랫 파일은
Part-00000 {4,,7,11} Part-00001 {5,8,11} Part-00002 {3,6,9}
값순 정렬을 찾으려면 : 여기 ans가 있습니다.
-
==============================
4.하이브 순서는 단일 감속기를 사용하므로 배분을 사용하여 정렬 할 수 있으며 정렬 된 테이블에서 다음을 수행 할 수 있습니다. 테이블의 로컬 덮어 쓰기 삽입 - 파일에 데이터 쓰기
하이브 순서는 단일 감속기를 사용하므로 배분을 사용하여 정렬 할 수 있으며 정렬 된 테이블에서 다음을 수행 할 수 있습니다. 테이블의 로컬 덮어 쓰기 삽입 - 파일에 데이터 쓰기
from https://stackoverflow.com/questions/14322381/mapreduce-job-output-sort-order by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop Path 객체를 Java File 객체로 변환하는 방법 (0) | 2019.06.04 |
---|---|
[HADOOP] Hadoop이 실행 중이더라도 작업 추적기에 내 직업을 보여주지 않습니다. (0) | 2019.06.04 |
[HADOOP] 병렬로 여러 클라이언트의 HDFS 파일에 추가 할 수 있습니까? (0) | 2019.06.04 |
[HADOOP] NOT IN 절을 실행하는 하이브 명령 (0) | 2019.06.04 |
[HADOOP] Hive가 파티션없이 또는 hive-site.xml을 편집하여 서브 디렉토리로 재귀 적으로 내려갈 수 있습니까? (0) | 2019.06.04 |