[HADOOP] Hadoop 및 Python : 정렬 비활성화
HADOOPHadoop 및 Python : 정렬 비활성화
필자는 Hadoop을 Python 코드로 실행할 때 매퍼 (mapper) 또는 감속기 (reducer) 중 어느 것이 내 출력을 정렬하기 전에 reducer.py에 의해 출력되는지를 깨달았습니다. 현재 그것은 영숫자로 정렬 된 것으로 보입니다. 나는 이것을 완전히 불가능하게하는 방법이 있는지 궁금합니다. mapper.py에서 인쇄 된 순서에 따라 프로그램의 출력을 원합니다. 나는 자바에서 답을 찾았지만 파이썬에는 답을 찾지 못했다. mapper.py 또는 명령 줄 인수를 수정해야합니까?
해결법
-
==============================
1.기본 MapReduce 개념에 대해 더 자세히 읽어야합니다. 어떤 경우에는 정렬이 불필요 할지라도, "Shuffle & Sort"단계의 셔플 부분은 MapReduce 모델의 본질적인 부분입니다. MapReduce 프레임 워크 (Hadoop)는 맵퍼의 출력을 그룹화하여 모든 키를 하나의 단일 감속기로 보내 감속기가 실제로 데이터를 "축소"할 수 있도록해야합니다. 스트리밍을 사용할 때 키 값 쌍은 기본적으로 탭 값으로 구분됩니다. 다른 SO 질문의 샘플 코드에서 "키, 값"튜플을 제공하지 않고 단일 텍스트 줄만 제공한다는 것을 알 수 있습니다.
기본 MapReduce 개념에 대해 더 자세히 읽어야합니다. 어떤 경우에는 정렬이 불필요 할지라도, "Shuffle & Sort"단계의 셔플 부분은 MapReduce 모델의 본질적인 부분입니다. MapReduce 프레임 워크 (Hadoop)는 맵퍼의 출력을 그룹화하여 모든 키를 하나의 단일 감속기로 보내 감속기가 실제로 데이터를 "축소"할 수 있도록해야합니다. 스트리밍을 사용할 때 키 값 쌍은 기본적으로 탭 값으로 구분됩니다. 다른 SO 질문의 샘플 코드에서 "키, 값"튜플을 제공하지 않고 단일 텍스트 줄만 제공한다는 것을 알 수 있습니다.
편집 : 질문에 다음과 같은 답변이 추가되었습니다. "어떻게 숫자로 정렬합니까 (예 : 9 ~ 10)?"
대안 1 : 모든 키가 같은 크기가되도록 키를 앞에 추가하십시오. "09"는 "10"앞에옵니다.
대안 2 :이 SO 질문에 표시된대로 KeyFieldBasedComparator를 사용하십시오.
-
==============================
2.아니, 여기에 명시된 바와 같이 :
아니, 여기에 명시된 바와 같이 :
from https://stackoverflow.com/questions/19188263/hadoop-and-python-disable-sorting by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 실행시 Hadoop 오류 : 키의 유형이 일치하지 않습니다. 예상되는 org.apache.hadoop.io.Text, 수신 된 org.apache.hadoop.io.LongWritable (0) | 2019.06.30 |
---|---|
[HADOOP] Mahout rowSimilarity (0) | 2019.06.30 |
[HADOOP] 파이썬 pyhs2를 사용하여 하이브에 연결하는 방법은 무엇입니까? (0) | 2019.06.30 |
[HADOOP] Hadoop : 감속기의 수가 프로그램에서 설정 한 것과 같지 않습니다. (0) | 2019.06.30 |
[HADOOP] HBase - java의 java.lang.NoClassDefFoundError (0) | 2019.06.29 |