반응형
음....하둡 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^
성능에 영향을 얼마나 줄지..과연!
반응형
'BigDATA > Hadoop' 카테고리의 다른 글
[꿀팁] 하둡 inputPath로 다중 File 작업하기 (0) | 2015.02.04 |
---|---|
[Hadoop] 하둡 맵-리듀스 따라잡기 (0) | 2015.02.02 |
Hadoop runner수행시 lib 못찾는 현상(IntelliJ 12 사용!) (0) | 2015.01.04 |
사용자 정의 옵션(Tool, ToolRunner) (0) | 2014.12.08 |
What is MapReduce?? (0) | 2014.12.02 |