복붙노트

[HADOOP] Hadoop 및 Python : 정렬 비활성화

HADOOP

Hadoop 및 Python : 정렬 비활성화

필자는 Hadoop을 Python 코드로 실행할 때 매퍼 (mapper) 또는 감속기 (reducer) 중 어느 것이 내 출력을 정렬하기 전에 reducer.py에 의해 출력되는지를 깨달았습니다. 현재 그것은 영숫자로 정렬 된 것으로 보입니다. 나는 이것을 완전히 불가능하게하는 방법이 있는지 궁금합니다. mapper.py에서 인쇄 된 순서에 따라 프로그램의 출력을 원합니다. 나는 자바에서 답을 찾았지만 파이썬에는 답을 찾지 못했다. mapper.py 또는 명령 줄 인수를 수정해야합니까?

해결법

  1. ==============================

    1.기본 MapReduce 개념에 대해 더 자세히 읽어야합니다. 어떤 경우에는 정렬이 불필요 할지라도, "Shuffle & Sort"단계의 셔플 부분은 MapReduce 모델의 본질적인 부분입니다. MapReduce 프레임 워크 (Hadoop)는 맵퍼의 출력을 그룹화하여 모든 키를 하나의 단일 감속기로 보내 감속기가 실제로 데이터를 "축소"할 수 있도록해야합니다. 스트리밍을 사용할 때 키 값 쌍은 기본적으로 탭 값으로 구분됩니다. 다른 SO 질문의 샘플 코드에서 "키, 값"튜플을 제공하지 않고 단일 텍스트 줄만 제공한다는 것을 알 수 있습니다.

    기본 MapReduce 개념에 대해 더 자세히 읽어야합니다. 어떤 경우에는 정렬이 불필요 할지라도, "Shuffle & Sort"단계의 셔플 부분은 MapReduce 모델의 본질적인 부분입니다. MapReduce 프레임 워크 (Hadoop)는 맵퍼의 출력을 그룹화하여 모든 키를 하나의 단일 감속기로 보내 감속기가 실제로 데이터를 "축소"할 수 있도록해야합니다. 스트리밍을 사용할 때 키 값 쌍은 기본적으로 탭 값으로 구분됩니다. 다른 SO 질문의 샘플 코드에서 "키, 값"튜플을 제공하지 않고 단일 텍스트 줄만 제공한다는 것을 알 수 있습니다.

    편집 : 질문에 다음과 같은 답변이 추가되었습니다. "어떻게 숫자로 정렬합니까 (예 : 9 ~ 10)?"

    대안 1 : 모든 키가 같은 크기가되도록 키를 앞에 추가하십시오. "09"는 "10"앞에옵니다.

    대안 2 :이 SO 질문에 표시된대로 KeyFieldBasedComparator를 사용하십시오.

  2. ==============================

    2.아니, 여기에 명시된 바와 같이 :

    아니, 여기에 명시된 바와 같이 :

  3. from https://stackoverflow.com/questions/19188263/hadoop-and-python-disable-sorting by cc-by-sa and MIT license