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^
성능에 영향을 얼마나 줄지..과연!
반응형