BigDATA/Hadoop

하둡 configuration으로 객체 넘기기!

태하팍 2015. 1. 12. 11:32
반응형



음....하둡 MR작업 중...

configuration에서 객체를 넘겨주고 싶어서 아래와 같이 인터페이스(QueryCodeList)와 구현체(QueryCodeListImpl)을 만든 뒤

setClass를 해주었다..

conf.setClass("queryCodeList", QueryCodeListImpl.class, QueryCodeList.class);

아래처럼 setClass시에 잘 생성 된 것을 알수가 있다.


그런 뒤 getClass를 통해 해당 객체를 가져오려고 하는데...잘안된다 ㅋㅋㅋㅋㅋ 널포인트 예외..ㄷㄷㄷ


 new 연산자를 통해 생성한 뒤에는 getClass로 가져올 수가 있었지만 아무 의미 없다~ 내가 하고자하는 것은 객체에 이미 데이터가 들어가 있는 상태이기 때문이다.

어떻게 해서 객체를 전달할 수 있을까?

1) Job쪽에 사용하고자 하는 객체를 생성 및 setter를 통해 데이터를 넣어줬다.

2) Gson을 통해 객체를 String형태로 만들어준다.

Gson gson = new Gson();    
conf.set("queryCodeList", gson.toJson(queryCodeListImplObject));

3) Map에서 conf.get을 통해 가져온다.

QueryCodeListImpl queryList = gson.fromJson(config.get("queryCodeList"), QueryCodeListImpl.class);

4) 해당 객체를 디버깅해서 보면 setter로 넣은 값들이 잘들어가 있는것을 확인할 수 있다. good~^0^


성능에 영향을 얼마나 줄지..과연!

반응형