uso sirven serializar serialización serializacion rae qué que para objeto métodos los interfaz implement guardar datos bases hadoop distributed-computing data-serialization

hadoop - sirven - ¿Qué es un sistema de serialización de datos?



serializacion rae (2)

Según el proyecto Apache AVRO, "Avro es un sistema de serialización". Al decir sistema de serialización de datos, ¿significa que avro es un producto o api?

Además, no estoy seguro de qué es un sistema de serialización de datos. por ahora, mi entendimiento es que es un protocolo que define cómo se pasa el objeto de datos a través de la red. ¿Puede alguien ayudar a explicarlo de una manera intuitiva que sea más fácil de entender para las personas con conocimientos informáticos distribuidos limitados?

¡Gracias por adelantado!


Entonces, cuando Hadoop estaba siendo escrito por Doug Cutting, decidió que el método estándar de Java de serializar un objeto Java utilizando la Serialización de Objetos Java (Serialización de Java) no cumplía con sus requisitos para Hadoop. A saber, estos requisitos eran:

  1. Serializar los datos en un formato binario compacto .
  2. Sea rápido , tanto en rendimiento como en la rapidez con la que permitió la transferencia de datos.
  3. Interoperable para que otros idiomas se conecten a Hadoop más fácilmente.

Como él describió la serialización de Java:

Se veía grande y peludo y pensé que necesitábamos algo delgado y malo.

En lugar de utilizar la serialización de Java, escribieron su propio marco de serialización. El principal problema que se percibió con la serialización de Java fue que escribe el nombre de clase de cada objeto que se serializa en la secuencia, y cada instancia subsiguiente de esa clase contiene una referencia de 5 bytes a la primera, en lugar del nombre de clase.

Además de reducir el ancho de banda efectivo del flujo, esto causa problemas con el acceso aleatorio y la clasificación de los registros en un flujo serializado. Por lo tanto, la serialización de Hadoop no escribe el nombre de clase o las referencias requeridas, y supone que el cliente conoce el tipo esperado.

La serialización de Java también crea un nuevo objeto para cada uno que se deserializa. Hadoop Writables, que implementa la serialización de Hadoop, se puede reutilizar. Por lo tanto, ayuda a mejorar el rendimiento de MapReduce, que serializa y deserializa de forma acentuada miles de millones de registros.

Avro encaja en Hadoop en el sentido de que aborda la serialización de una manera diferente. El cliente y el servidor intercambian un esquema que describe el flujo de datos. Esto ayuda a que sea rápido, compacto y, lo que es más importante, facilita la mezcla de lenguajes.

Por lo tanto, Avro define un formato de serialización, un protocolo para clientes y servidores para comunicar estas transmisiones en serie y una forma de conservar de forma compacta los datos en los archivos.

Espero que esto ayude. Pensé que un poco de la historia de Hadoop ayudaría a entender por qué Avro es un subproyecto de Hadoop y en qué está destinado a ayudar.


Si tiene que almacenar en un archivo limitado la información como la jerarquía o los detalles de implementación de la estructura de datos y pasar esa información a través de una red, utiliza la serialización de datos. Está cerca de entender el formato xml o json. El beneficio es que la información que se traduce a cualquier formato de serialización se puede deserializar para regenerar las clases, objetos, estructuras de datos, independientemente de lo que se haya serializado.

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

Here está el enlace a la lista de formatos de serialización. Comenta si quieres más información! :)