Qu'est-ce qu'un système de sérialisation de données?
selon Apache AVRO projet, "l'Avro est un système de sérialisation". En disant de sérialisation de données système, ça veut dire que l'avro est un produit ou d'un api?
aussi, je suis quittez pas sûr de ce que d'une sérialisation de données système? pour l'instant, ma compréhension, c'est que c'est un protocole qui définit comment les données de l'objet est passé au-dessus du réseau. Quelqu'un peut-il aider à l'expliquer de manière intuitive qu'il est plus facile pour les gens avec peu de calcul distribué de fond à comprendre?
Merci d'avance!
source d'informationauteur Yang
Vous devez vous connecter pour publier un commentaire.
Donc quand Hadoop a été écrit par Doug Cutting, il a décidé que la norme Java de la méthode de sérialisation d'objet Java à l'aide de Java Sérialisation d'un Objet (Java Sérialisation) ne répondent pas à ses exigences pour Hadoop. À savoir, ces exigences ont été:
Comme il l'a décrit la Sérialisation Java:
Au lieu d'utiliser la Sérialisation Java, ils ont écrit leur propre infrastructure de sérialisation. Les principaux problèmes perçus à la Sérialisation Java est qu'il écrit le nom de classe de chaque objet sérialisé dans le flux, à chaque instance de cette classe contenant 5 octet de référence pour le premier, au lieu de celui de la classe.
Ainsi que la réduction de la largeur de bande efficace des flux de cela provoque des problèmes avec l'accès aléatoire ainsi que le tri de dossiers dans un sérialisé flux. Ainsi Hadoop sérialisation ne pas écrire le nom de la classe ou les références nécessaires, et fait l'hypothèse que le client connaît le type attendu.
La Sérialisation Java aussi crée un nouvel objet pour chacun ce est désérialisé. Hadoop Writables, qui mettent en œuvre Hadoop Sérialisation, peut être réutilisé. Ainsi, en contribuant à améliorer la performance de MapReduce qui accentually sérialise et désérialise des milliards d'enregistrements.
Avro s'inscrit dans Hadoop dans l'approche de la sérialisation d'une manière différente. Le client et le serveur échangent un schéma qui décrit le flux de données. De ce fait, il est rapide, compact et surtout le rend plus facile à mélanger languanges ensemble.
Donc Avro définit un format de sérialisation, un protocole pour les clients et les serveurs pour communiquer cette série de flux et une façon de façon compacte persister des données dans les fichiers.
J'espère que cette aide. J'ai pensé un peu de Hadoop, histoire de l'aider à comprendre pourquoi l'Avro est un sous-projet d'Hadoop et de ce que ses destiné à aider avec des.
Si vous devez stocker dans un nombre limité de fichier les informations, comme la hiérarchie ou de la structure de données détails de mise en œuvre et transmettre de l'information sur un réseau, vous utilisez de sérialisation des données. Il est proche à la compréhension de format xml ou json. L'avantage est que l'information qui est traduit dans n'importe quel format de sérialisation peut être désérialisé pour régénérer les classes, les objets, les structures de données de tout ce qui a été sérialisée.
Ici est le lien vers la liste des formats de sérialisation. Commentaire si vous le souhaitez de plus amples informations! 🙂