2012-01-11 1 views
1

"org.apache.hadoop.typedbytes.TypedBytesWritable" 키 - 값 쌍을 가진 순차 파일이 있는데이 파일을 Hadoop 작업의 입력으로 제공해야하며 맵에서 처리해야합니다 만. 내 말은 내가 줄여야 할 일은하지 말라는 뜻입니다.Hadoop 작업에 대한 입력으로 Hadoop Sequentil 파일을 읽는 방법은 무엇입니까?

1) FileInputFormat을 SequentialFile로 어떻게 지정합니까?

2) 맵 기능의 서명은 무엇입니까?

3) Reduce 대신지도에서 출력을 어떻게 얻을 수 있습니까?

답변

2

1) FileInputFormat을 SequentialFile로 어떻게 지정합니까?

입력 형식으로 SequenceFileAsBinaryInputFormat을 설정하십시오. 다음은 SequenceFileAsBinaryInputFormat 클래스의 code입니다.

여기지도 기능의 서명 될 것입니다 무엇 코드

JobConf conf = new JobConf(getConf(), getClass()); 
conf.setInputFormat(SequenceFileAsBinaryInputFormat.class); 

2에게)입니다.

지도는 키와 값 유형으로 BytesWritable을 사용하여 호출됩니다.

3) 어떻게 Reduce 대신 맵에서 출력을 얻을 수 있습니까?

mapred.reduce.tasks 속성을 0으로 설정하십시오.지도의 출력이 작업의 최종 출력이됩니다.

또한

SequenceFileAsTextInputFormat를보십시오. 지도는 텍스트를 키 및 값 유형으로 호출합니다.

+0

감사합니다. Praveen, 저는 'job.setInputFormatClass (SequenceFileInputFormat.class);'를 사용했습니다. 그것은 어떤 차이를 만들 것입니까? 어떤 형식이 성능면에서 현명한가? – samarth

+0

잘 모르겠지만 SequenceFileAsBinaryInputFormat이 SequenceFileInputFormat보다 빠르다고 생각하십시오. @ 코드를 보았지만 조금 복잡해서 이해하는 데 시간이 걸릴 것입니다. –