2015-02-04 2 views
0

MultiTableOutputFormat을 사용했으며 복수 HBase 테이블에 TableReducer으로 작성했습니다. 그러나 달성하는 방법은 Mapper 일만?Avro에서 읽기 및 Mapper의 여러 HBase에 쓰기

TableMapper을 사용해 보았지만 <KEYOUT,VALUEOUT>이 아니고 <KEYIN,VALUEIN,KEYOUT,VALUEOUT>이 아닙니다. 그래서 나는 텍스트 파일을 읽을 수 없었다.

My Mapper가 HBase로 푸시하기 전에 Text/Avro 파일을 읽고 처리 중입니다. 그게 가능하니?

답변

0

HBase 연결을 열고 구현 한 매퍼에서 직접 PUT 작업을 쓸 수 있습니다.

+0

HBase 연결 만들기는 무거운 작업입니다. 연결 인스턴스를 다시 활용할 수 있도록 매퍼간에 HBase 연결을 공유 할 수 있습니까? – hp36

+0

각 매퍼는 자신의 JVM에서 (그리고 때로는 동일한 서버에서만) 실행되기 때문에 대답은 no –

+0

입니다. 각 매퍼가 자체 JVM에서 실행되는 것은 맞습니다. 나는 hbase 연결 객체를 직렬화하고 드라이버의 프로그램 내부의'Configuration' 클래스에 설정하고 mapper의'setup()'메소드에서 다시 역 직렬화하여 원래의 연결 객체를 얻으면 완료 될 수 있다고 생각합니다. 좋은 예가 여기에 나와 있습니다 (http://stackoverflow.com/questions/26983741/passing-objects-to-mapreduce-from-a-driver/26984356). – hp36