본문 바로가기
Hadoop

Hadoop Chain

by 언덕너머에 2014. 6. 16.

- Chain

  하둡은 하나의 랩리듀스 잡에서 여러 개의 매퍼와 리듀서를 실행할 수 있게 체인매퍼(ChainMapper)

  와 제인리듀서 (ChainReduce애를 제공한다. 두 클래스는 체인 방식으로 매퍼와 리듀서를 호출하게

  된다. 체인매퍼의 경우 첫 번째 매퍼를 실행한 후 그 출력을 두 번째 매퍼의 입력 파라미터로 전달하

  고, 두번째 매퍼의 출력은 그 다음 순서의 매퍼의 입력으로 전달된다. 이렇게 순차 적으로 매퍼가 실행

  되다가 마지막에 있는 매퍼의 출력이 매퍼의 최종 출력 데이터가 된다. 체인리듀서도 위와같은 방식으

  로 출력 데이터가 만들어진다.


  예)

  Configuration conf = new Configuration();

  //MapReduce job 이름 설정 

  conf.setJobName("chain"); 

  //입출력 데이터 포뱃 설정 

  conf.setlnputFormat(TextlnputFormat.class); 

  conf.setOutputFormat(TextOutputFormat.class); 

  //첫 번째 Mapper 설정 

  JobConf mapAConf = new JobConf(false); 

  ChainMapper.addMapper(conf AMap.class, LongWritable.class Text.class, 

                                       Text.class, Text.class, true, mapAConf); 

  //두 번째 Mapper 설정 

  JobConf mapBConf = new JobConf(false); 

  ChainMapper.addMapper(conf BMap.class, Text.class, Text.class, 

                                             LongWritable.class, Text.class, false, mapBConf); 

  //Reducer 설정 

  JobConf reduceConf = new JobConf(false); 

  ChainReducer.setReducer(conf, XReduce.class, LongWritable.class, Text.class, 

                                        Text.class, Text.class, true, reduceConf); 

  //세 번째 Mapper 설정(리듀서 실행 후 실행됨) 

  ChainReducer.addMapper(conf, CMap.class, Text.class, Text.class,

                                        LongWritable.class, Text.class, false, null); 

  //네 번째 Mapper 설정 

  ChainReducer.addMapper(conf, DMap.class, LongWritable.class, Text.class,

                                        LongWritable.class, LongWritable.class, true, null); 

  FilelnputFormat.setlnputPaths(conf, inDir); 

  FileOutputFormat.setOutputPath(conf, outDir); 

  JobClient jc = new JobClient(conf); 

  RunningJob job = jc.submitJob(conf);

'Hadoop' 카테고리의 다른 글

Hadoop OutputCollector  (0) 2014.06.27
Hadoop setPartitionerClass & setGroupingComparatorClass  (0) 2014.06.16
Hadoop Output Format  (0) 2014.06.13
Reducer  (0) 2014.06.09
Partitioner  (0) 2014.06.09