Есть ли простой способ мигрировать из SeecenceFiles в AVRO?
-
21-12-2019 - |
Вопрос
В настоящее время я использую работу Hadoop Maprecuce с последовательными положениями типовых материалов. Один и тот же тип записи используются для сериализации, также в части, связанных с Non Hadoop, связанные с частями системы.
Этот метод трудно поддерживать - главным образом из-за отсутствия схемы и необходимости ручного обращения с изменениями версии.
Похоже, что Apache Avro обрабатывает эти проблемы.
Проблема в том, что во время миграции у меня будут данные в обоих форматах. Есть ли простой способ справиться с миграцией?
Решение
Вообще, нет ничего останавливать вас от использования данных AVRO и SequenceFiles. Используйте все, что требуется Ifformat для типа необходимых вами данных, а для вывода его, конечно, имеет смысл использовать форматы AVRO при условии, что практический. Если ваш вклад входит в разные форматы, посмотрите на NewinSputs . По сути, вам все равно придется реализовывать отдельные материалы, но это будет уже доверяно, учитывая, что ключ / значение ввода карты отличается.
Переезд в AVRO - мудрый ход. Если у вас есть потенциал во времени и аппаратном обеспечении, может даже быть достойным явно преобразовывать ваши данные из SequenceFile в AVRO сразу. Вы можете использовать любой язык, поддерживаемый AVRO, который также происходит, чтобы поддерживать последовательность для этого. Java конечно делает (четко), но свинья тоже довольно удобна для этого.
У пользователя Piggybank Peggybank имеет функциональность для чтения последовательностейFile, а затем просто вопрос использования AVRostorage из того же проекта Piggybank с соответствующей схемой AVRO, чтобы получить файл AVRO.
Если только свинья поддерживала загрузку схемы AVRO из файла ..! Если вы используете свинья, вы, к сожалению, приходится формировать сценарии, которые явно содержат схему AVRO, что может быть немного раздражающим.
Другие советы
Я не пробовал это сам, но, возможно, использование формата AvroSequenceFile
поможет.Это просто обертка вокруг SequenceFile
, поэтому в теории вы должны быть в состоянии писать данные как в вашем старом формате SequenceFile
, а также новый формат Avro
, который должен проще сделать миграцию.
Вот Больше информации Об этом формате.