복붙노트

[HADOOP] '지도 만'hadoop 작업을 작성하는 방법?

HADOOP

'지도 만'hadoop 작업을 작성하는 방법?

나는 초보자 인 hadoop에 익숙해졌지만 map-reduce 프로그래밍 방식에 익숙해졌지만 지금은 문제가 발생했다. 때로는 작업을위한지도 만 필요하고 결과물을 출력으로 직접 필요로한다. 단계가 여기에 필요하지 않습니다, 어떻게 그것을 얻을 수 있습니까?

해결법

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

    1.감속기가 꺼집니다.

    감속기가 꺼집니다.

    job.setNumReduceTasks(0);
    

    http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapreduce/Job.html#setNumReduceTasks(int)

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

    2.IdentityReducer를 사용할 수도 있습니다.

    IdentityReducer를 사용할 수도 있습니다.

    http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/lib/IdentityReducer.html

  3. ==============================

    3.터미널에서 매퍼로 작업을 시작해야 할 때 매우 유용 할 수 있습니다. hadoop jar 명령에 0 축소기를 지정하면 암시 적으로 감속기를 끌 수 있습니다.

    터미널에서 매퍼로 작업을 시작해야 할 때 매우 유용 할 수 있습니다. hadoop jar 명령에 0 축소기를 지정하면 암시 적으로 감속기를 끌 수 있습니다.

    -D mapred.reduce.tasks=0 
    

    결과 명령은 다음과 같습니다.

    hadoop jar myJob.jar -D mapred.reduce.tasks=0 -input myInputDirs -output myOutputDir
    

    이전 버전과의 호환성을 위해 Hadoop은 "-D mapred.reduce.tasks = 0"과 동일한 "-reduce NONE"옵션도 지원합니다.

  4. ==============================

    4.hadoop 작업을 관리하기 위해 스케쥴러로 oozie를 사용하고 있다면 mapred.reduce.tasks (작업 당 축소 작업의 기본 수) 속성을 0으로 설정할 수 있습니다. mapaduce 속성에 매퍼를 추가 할 수 있습니다 .map.class를 사용하고 reducers가 필요하지 않으므로 mapreduce.reduce.class 속성을 추가 할 필요가 없습니다.

    hadoop 작업을 관리하기 위해 스케쥴러로 oozie를 사용하고 있다면 mapred.reduce.tasks (작업 당 축소 작업의 기본 수) 속성을 0으로 설정할 수 있습니다. mapaduce 속성에 매퍼를 추가 할 수 있습니다 .map.class를 사용하고 reducers가 필요하지 않으므로 mapreduce.reduce.class 속성을 추가 할 필요가 없습니다.

    <configuration>
       <property>
         <name>mapreduce.map.class</name>
         <value>my.com.package.AbcMapper</value>
       </property>
       <property>
         <name>mapred.reduce.tasks</name>
         <value>0</value>
       </property>
       .
       .
       .
    <configuration>
    
  5. from https://stackoverflow.com/questions/9394409/how-to-write-map-only-hadoop-jobs by cc-by-sa and MIT license