Hadoop

Mapper

언덕너머에 2014. 6. 9. 14:04

  Mapper는 맴리듀스 프로그래밍 모댈에서 뱀 메서드의 기능을 수행한다. Mapper는 키와 값으로

  구성된 입력 데이터를 전달받아 이 데이터를 가공하고 분류해서 새로운 데이터 목록을 생성한다.


  public class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT>

  예)

   public class TokenCounterMapper extends Mapper<Object, Text, Text, IntWritable>{


     private final static IntWritable one = new IntWritable(1);

     private Text word = new Text();

   

     public void map(Object key, Text value, Context context) throws IOException, InterruptedException {

       StringTokenizer itr = new StringTokenizer(value.toString());

       while (itr.hasMoreTokens()) {

         word.set(itr.nextToken());

         context.write(word, one);

       }

     }

   }


- Method  요약

  cleanup : Mapper Class 작업의 마지막에 한 번 실행된다.

  예)

  protected void cleanup(org.apache.hadoop.mapreduce.Mapper.Context context) 

                                throws IOException, InterruptedException 


  map : key / value로 분할된 입력값에 대해서 한 번 실행된다. 대부분의 경우 override되지만, 

           default는 identity function이다.

  예)

  protected void map(KEYIN key, VALUEIN value, 

                             org.apache.hadoop.mapreduce.Mapper.Context context)

                             throws IOException, InterruptedException


  run : Mapper Class를 좀더 제어하기 위해 override 할 수 있다.

  예)

  public void run(org.apache.hadoop.mapreduce.Mapper.Context context)

                        throws IOException, InterruptedException


  setup : Mapper Class 작업이 시작될 때 처음 한 번 실행된다.

  예)

  protected void setup(org.apache.hadoop.mapreduce.Mapper.Context context)

                                throws IOException, InterruptedException