MR - 사용자 정의 옵션, 매퍼 구현

Posted 01 19, 2014 13:08, Filed under: BigData/MapReduce


MR - 사용자 정의 옵션, 매퍼 구현


# 사용자 정의 옵션(GenericOptionsParser, Tool, ToolRunner)

사용자가 맵리듀스 잡을 실행할 때 명령어 옵션으로 입력한 파라미터명(worType)을 확인.

# 매퍼 클래스
public class TestMapper extends Mapper<LongWritable, Text, Text, IntWritable> {

    // 작업 구분
    private String workType;

    // map 출력값
    private final static IntWritable outputValue = new IntWritable(1);

    // map 출력키
    private Text outputKey = new Text();

    // setup 메서드 재정의
    // workType의 받게될 파라미터 확인
    @Override
    protected void setup(Context context) throws IOException, InterruptedException {
        workType = context.getConfiguration().get("workType");
    }

    public void map(LongWritable key, Text value, Context context)
            throws IOException, InterruptedException {
        // departure
        if(workType.equals("departure")){
            // workType 파라미터의 값(departure)에 따른 작업
        }else if(workType.equals("arrival")){
            // workType 파라미터의 값(arrival)에 따른 작업
        }
    }
}


# 드라이버 클래스
public class TestDriver extends Configured implements Tool {

    // int 타입을 반환하는 run 메서드 구현
    public int run(String[] args) throws Exception {
/**
 *  # getRemaiingArgs 메서드를 호출해 문자열 배열을 생성.
 *    getRemaiingArgs에서 반환하는 배열은 GenericOptionsParser에서 제공하는
 *    파라미터를 제외한 나머지 파라미터를 의미함.(사용자 정의 설정에 포함)
 *    > -conf, -D, -fs와 같은 옵션을 붙여서 설정한 파라미터는 모두 제외됨.
 *   예)  
 *   잡 실행 : bin/hadoop jar hadoop.test.TestDriver -conf -D -fs input output
 *   잡 반환 : bin/hadoop jar hadoop.test.TestDriver input output
 */
        String[] otherArgs = new GenericOptionsParser(getConf(), args).getRemainingArgs();

        // 입출력 데이터 경로 확인
        if (otherArgs.length != 2) {
            System.err.println("Usage: TestDriver <in> <out>");
            System.exit(2);
        }

        // Job 이름 설정
        Job job = new Job(getConf(), "TestDriver");

        // 입출력 데이터 경로 설정
        FileInputFormat.addInputPath(job,new Path(otherArgs[0]));
        FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));        
        .
        .
        .
        job.waitForCompletion(true);
        return 0;
    }
    
    public static void main(String[] args) throws Exception {
        // Tool 인터페이스 실행 : run 메서드는 ToolRunner에서만 호출할 수 있음.
        int res = ToolRunner.run(new Configuration(), new TestDriver(), args);
        System.out.println("## RESULT:" + res);
    }    
}


# 드라이버 클래스 실행
$ bin/hadoop jar TestDriver.jar hadoop.test.TestDriver -D workType=departure input output



참고 : 시작하세요! 하둡 프로그래밍





※ 위 내용은, 여러 자료를 참고하거나 제가 주관적으로 정리한 것입니다.
   잘못된 정보나 보완이 필요한 부분을, 댓글 또는 메일로 보내주시면 많은 도움이 되겠습니다.
01 19, 2014 13:08 01 19, 2014 13:08


Trackback URL : http://develop.sunshiny.co.kr/trackback/992

Leave a comment

« Previous : 1 : ... 50 : 51 : 52 : 53 : 54 : 55 : 56 : 57 : 58 : ... 648 : Next »

Recent Posts

  1. HDFS - Python Encoding 오류 처리
  2. HP - Vertica ROS Container 관련 오류...
  3. HDFS - Hive 실행시 System Time 오류
  4. HP - Vertica 사용자 쿼리 이력 테이블...
  5. Client에서 HDFS 환경의 데이터 처리시...

Recent Comments

  1. Article writing is also a exciteme... 레깅스룸 02 16,
  2. I like reading an article that can... 부산고구려 02 16,
  3. Asking questions are truly nice th... 해운대룸싸롱 02 15,
  4. Pretty! This was an extremely wond... 분당셔츠룸 02 15,
  5. Wonderful beat ! I would like to a... 레깅스룸가격 02 14,

Recent Trackbacks

  1. london relocation ltd london relocation ltd 16 02
  2. extract your knowledge extract your knowledge 16 02
  3. dog cart dog cart 15 02
  4. This Site This Site 15 02
  5. massive action massive action 15 02

Calendar

«   02 2020   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. 오라클 클럽
  4. API - Java
  5. Apache Hadoop API
  6. Apache Software Foundation
  7. HDFS 생태계 솔루션
  8. DNSBL - Spam Database Lookup
  9. Ready System
  10. Solaris Freeware
  11. Linux-Site
  12. 윈디하나의 솔라나라

Site Stats

TOTAL 2846535 HIT
TODAY 97 HIT
YESTERDAY 544 HIT