2009-07-09 4 views
3

Hadoop에서 많은 파일을 처리하고 싶습니다. 각 파일에는 몇 가지 헤더 정보가 있으며 그 뒤에 많은 양의 레코드가 있으며 각각은 고정 된 바이트 수로 저장됩니다. 그것에 관한 어떤 제안?Hadoop에 헤더가 포함 된 파일 처리

답변

4

가장 좋은 해결책은 사용자 정의 InputFormat을 작성하는 것입니다.

0

사용자 지정 FileInputFormat을 작성하는 것 외에도 파일 내에서 레코드를 처리하는 방법을 독자가 알 수 있도록 파일을 분할 할 수 없는지 확인해야합니다.

1

한 가지 해결책이 있습니다. 매퍼가 읽는 파일의 라인 오프셋을 확인할 수 있습니다. 파일의 첫 번째 줄은 0입니다.

공공 무효지도 (LongWritable 키, 텍스트 값, 컨텍스트 컨텍스트) IOException이, 예외 : InterruptedException 을 던졌습니다 {

 if(key.get() > 0) 
         { 
         your mapper code 
         } 
       } 

그래서, 그것은의 첫 번째 줄을 건너 뛰고 다음과 같이 그래서 당신은지도에 선을 추가 할 수 있습니다 파일.

그러나이 방법으로 파일의 각 줄마다이 조건이 검사되기 때문에 좋지 않습니다.

가장 좋은 방법은 사용자 지정 입력 형식을 사용하는 것입니다.

관련 문제