Подтвердить что ты не робот

Что такое система сериализации данных?

согласно проекту Apache AVRO, "Avro - система сериализации". Говоря о системе сериализации данных, означает ли это, что avro является продуктом или api?

также, я не уверен, что такое система сериализации данных? на данный момент я понимаю, что это протокол, который определяет, как объект данных передается по сети. Может ли кто-нибудь помочь объяснить это интуитивно понятным способом, чтобы понять людей с ограниченным распределенным вычислительным фоном?

Спасибо заранее!

4b9b3361

Ответ 1

Итак, когда Hadoop писал Doug Cutting, он решил, что стандартный Java-метод сериализации Java-объекта с использованием Java Object Serialization (Java Serialization) не соответствует его требованиям для Hadoop. А именно, эти требования были:

  • Сериализовать данные в двоичном формате компактный.
  • Быть быстро, как по производительности, так и по скорости передачи данных.
  • Взаимодействующий, чтобы другие языки легче вставлялись в Hadoop.

Как он описал Java Serialization:

Это выглядело большим и волосатым, и я, хотя нам нужно было что-то скудное и среднее

Вместо использования Java Serialization они написали свою собственную структуру сериализации. Основные проблемы, связанные с Java Serialization, заключались в том, что он записывает имя класса для каждого объекта, который сериализуется в поток, причем каждый последующий экземпляр этого класса содержит ссылку на 5 байтов на первое, а не на имя класса.

Как и уменьшение эффективной полосы пропускания потока, это вызывает проблемы со случайным доступом, а также сортировку записей в сериализованном потоке. Таким образом, сериализация Hadoop не записывает имя класса или требуемые ссылки и делает предположение, что клиент знает ожидаемый тип.

Сериализация Java также создает новый объект для каждого десериализованного. Hadoop Writables, которые реализуют серию Hadoop Serialization, могут быть повторно использованы. Таким образом, помогая улучшить производительность MapReduce, который акцентирует сериализацию и десериализацию миллиардов записей.

Avro вписывается в Hadoop в том смысле, что он приближается к сериализации другим способом. Клиент и сервер обмениваются схемой, которая описывает поток данных. Это помогает сделать его быстрым, компактным и, тем самым, облегчает смешивание путаницы вместе.

Таким образом, Avro определяет формат сериализации, протокол для клиентов и серверов для связи этих последовательных потоков и способ компактного сохранения данных в файлах.

Надеюсь, это поможет. Я думал, что история Hadoop поможет понять, почему Avro является подпроектом Hadoop и с чем он должен помочь.

Ответ 2

Если вам нужно хранить в ограниченном файле информацию, подобную структуре реализации иерархии или структуры данных, и передавать эту информацию по сети, вы используете сериализацию данных. Он близок к пониманию формата xml или json. Преимущество состоит в том, что информация, которая переводится в любой формат сериализации, может быть десериализована для восстановления классов, объектов, структур данных независимо от того, что было сериализовано.

actual implementation-->serialization-->.xml or .json or .avro --->deserialization--->imlementation in original form

Здесь - ссылка на список форматов сериализации. Комментарий, если вы хотите получить дополнительную информацию!:)