복붙노트

[HADOOP] 지도에서 데이터를 정렬하는 방법은?

HADOOP

지도에서 데이터를 정렬하는 방법은?

4 단계 MapReduce 단계가있는 프로그램으로 작업하고 있습니다. 첫 번째 단계는 다음과 같습니다.

id      value
 1        20
 2         3
 3         9
 4        36

나는 약 1,000,000 ID를 가지고 있고 두 번째 단계에서이 단계의 값을 정렬해야합니다 :

 id      value
 4        36
 1        20
 3         9
 2         3

맵 축소에서 내 데이터를 정렬하려면 어떻게해야합니까? 테라 포트를 사용해야합니까? 그렇다면 테러 소트를 제 프로그램의 두 번째 단계에서 어떻게 사용합니까? 감사.

해결법

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

    1.값에 따라 정렬하려면 맵 기능에서 키를 만듭니다. 즉

    값에 따라 정렬하려면 맵 기능에서 키를 만듭니다. 즉

    id      value
    1        20
    2         3
    3         9
    4        36
    5         3
    

    맵 함수의 (값) (키)

    output will be 
    
    key      value
    3         5
    3         2
    9         3
    20        1
    36        4
    
    map<value, id> output key/value  
    reduce <value, id>
    

    id를 첫 번째 열에 넣으려면이 방법이 유용 할 것입니다.

    context.write (value, key);

    id는 정렬되지 않습니다.

  2. from https://stackoverflow.com/questions/16402383/how-to-sort-data-in-map-reduce-hadoop by cc-by-sa and MIT license