2012-05-18 3 views

답변

2

파일을 열고 첫 번째 키/값 쌍을 가져 오는 것 외에는없는 것입니다. 그 이유는 각 블록의 레코드 수를 자세히 설명하는 헤더가 없기 때문입니다 (주로 데이터가 스트리밍되기 때문에 헤더가 쓰여질 때 키 수에 대한 사전 지식이 없습니다).

이러한 '빈'파일을 만드는 것을 피하는 방법에 대한 몇 가지 이전 스레드가 있었지만 출력하는 값의 수를 추적하는 자체 OutputFormat 및 OutputComitter를 만드는 것이 유일한 방법이었습니다. 데이터가 기록되지 않으면 파일을 커밋하지 않습니다.

+1

에 시퀀스 파일을 확인하고 여기에 간단한 솔루션 - HTTP : //whiteycode.blogspot.com/2012/06/hadoop-removing-empty-output-files.html –

+0

Chris, 블로그가 매우 유용했습니다. 고마워요! – kee

+0

최근 출시 된 Hadoop (1.0.0+)에서는 비슷한 일을하는 org.apache.hadoop.mapreduce.lib.output.LazyOutputFormat 을 소개했습니다. –

0

한 HDFS 이러한 빈 파일을 커밋 피하기 위해 내가 SequenceFileOutputFormat 확장에 쓴 블로그를 열고 HDFS 또는 S3

하둡 FS -text path_of_sequence_file

관련 문제