当前位置:  开发笔记 > 运维 > 正文

什么是数据序列化系统?

如何解决《什么是数据序列化系统?》经验,为你挑选了1个好方法。

根据Apache AVRO项目,"Avro是一个序列化系统".通过说数据序列化系统,是否意味着avro是产品或api?

另外,我不确定数据序列化系统是什么?现在,我的理解是它是一个定义数据对象如何通过网络传递的协议.任何人都可以帮助以直观的方式解释它,以便分析计算背景有限的人更容易理解吗?

提前致谢!



1> Binary Nerd..:

因此,当Doug Cutting编写Hadoop时,他认为使用Java Object Serialization(Java Serialization)序列化Java对象的标准Java方法不符合他对Hadoop的要求.即,这些要求是:

    将数据序列化为紧凑的二进制格式.

    ,无论是在性能和速度有多快它允许传输的数据.

    可互操作,以便其他语言更容易插入Hadoop.

正如他描述的Java序列化:

它看起来很大而且毛茸茸,我虽然需要精益和平均的东西

他们没有使用Java Serialization,而是编写了自己的序列化框架.Java序列化的主要问题是它将被序列化的每个对象的类名写入流,该类的每个后续实例包含对第一个的5字节引用,而不是类名.

除了减少流的有效带宽之外,这还会导致随机访问以及序列化流中记录的排序问题.因此,Hadoop序列化不会编写类名或必需的引用,并假设客户端知道预期的类型.

Java Serialization还为每个反序列化的对象创建一个新对象.实现Hadoop序列化的Hadoop Writable可以重用.因此,有助于提高MapReduce的性能,从而有效地序列化和反序列化数十亿条记录.

Avro适用于Hadoop,因为它以不同的方式接近序列化.客户端和服务器交换描述数据流的方案.这有助于使其快速,紧凑,并且重要的是可以更容易地将语言混合在一起.

因此,Avro定义了一种序列化格式,一种用于客户端和服务器通信这些串行流的协议,以及一种在文件中紧凑地保存数据的方法.

我希望这有帮助.我认为一些Hadoop历史将有助于理解为什么Avro是Hadoop的子项目以及它的帮助意义.


非常感谢!这是非常有帮助的,我想我需要一些hadoop的背景,以了解其子项目:)
推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有