문제

현재 쓰기 가능한 SequenceFiles와 함께 hadoop mapreduce 작업을 사용하고 있습니다.시스템의 Hadoop과 관련되지 않은 부분에서도 동일한 쓰기 가능 유형이 직렬화에 사용됩니다.

이 방법은 유지 관리가 어렵습니다. 주로 스키마가 부족하고 버전 변경을 수동으로 처리해야 하기 때문입니다.

Apache avro가 이러한 문제를 처리하는 것으로 보입니다.

문제는 마이그레이션 중에 두 가지 형식의 데이터가 모두 있다는 것입니다.마이그레이션을 처리하는 간단한 방법이 있나요?

도움이 되었습니까?

해결책

일반적으로 AVRO 데이터와 SequenceFiles를 사용하여 교환 가능하게 사용하지 못하게하는 것은 아무것도 없습니다. 필요한 데이터 유형에 필요한 모든 InputFormat이 필요하며 출력을 위해 물론 출력은 실무 할 때마다 Avro 형식을 사용하는 것이 좋습니다. 입력이 다른 형식으로 제공되는 경우 ulticalInputs . 본질적으로 별도의 매퍼를 구현해야하지만 맵 입력 키 / 값이 다르게 고려해야합니다.

avro로 이동하는 것은 현명한 움직임입니다. 시간과 하드웨어의 용량이있는 경우 SequenceFile에서부터 즉시 데이터를 명시 적으로 변환하는 것이 가치가있을 수 있습니다. 이 작업을 수행하기 위해 SequenceFiles를 지원하는 Avro가 지원하는 언어를 사용할 수 있습니다. Java는 확실히 (분명히)하지만 돼지도 이렇게하기 위해 꽤 편리합니다.

사용자는 PiggyBank 프로젝트를 제공 한 다음 SequenceFile을 읽는 기능을 가지고 있으며, 동일한 PiggyBank 프로젝트에서 Avrostorage를 사용하여 적절한 Avro 파일을 사용하여 AVRO 파일을 얻는 것입니다.

돼지 만 파일에서 로딩하는 Avro Schemas만을 지원하는 경우 .. 돼지를 사용하는 경우 불행하게도 비트 성가신 일 수있는 AVRO 스키마를 명시 적으로 포함하는 스크립트를 형성해야합니다.

다른 팁

직접 사용해본 적은 없지만 아마도 AvroSequenceFile 형식이 도움이 될 것입니다.그냥 포장지일 뿐이야 SequenceFile 따라서 이론적으로는 이전 두 언어 모두에 데이터를 쓸 수 있어야 합니다. SequenceFile 형식뿐만 아니라 새로운 Avro 마이그레이션을 더 쉽게 해주는 형식입니다.

여기는 추가 정보 이 형식에 대해.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top