2011-11-02 5 views
1

AFAK, 하둡 스트리밍은 텍스트 입력 만 지원합니다. 즉, 데이터는 라인별로 구성됩니다. 그러나 우리가 이전 버전과의 호환성을 원한다면 매퍼 코드가 엉망이 될 것입니다. C++로 작성한 동일한 매퍼 프로그램에서 다른 버전의 로그 라인을 지원합니다.하둡 스트리밍의 하위 호환성

나는 avro 또는 protobuf를 고려해 보았지만 스트리밍 모드에서는 지원되지 않는 것 같습니다. 사실입니까?

다른 해결책이 있습니까?

답변

2

기타 입력/출력 형식은 Hadoop Streaming과 함께 used 일 수 있습니다.

Avro support이 Hadoop Streaming에 추가되었습니다. AVRO-808 & AVRO-830을 참조하십시오. 또한이 Thread이 유용 할 수 있습니다.

ProtoBuf 용 InputFormat 및 OutputFormat 클래스를 찾을 수 없습니다. 따라서 사용자 정의 created이어야합니다.

2

정보를 보려면, hadoop 스트리밍은 바이너리 입/출력을 지원합니다.

-io rawbytes 옵션을 찾으십시오.

필자는 SequenceFile을 사용할 수있는 프로토 타입을 만들었습니다 (필자는 오래 전에 생각했습니다).

Java Hadoop * Writables를 스트림에서 비 직렬화해야했기 때문에이 아이디어를 포기했습니다. C# BinaryReader 은 리틀 엔디안 인코딩을 사용하는 반면 Java는 빅 엔디안을 사용합니다. 따라서 매퍼는 더 복잡해졌습니다.

어쨌든 가능합니다.

관련 문제