hadoop序列化机制与java序列化机制对比
2013-11-18 12:08
295 查看
1、采用的方法:
java序列化机制采用的ObjectOutputStream 对象上调用writeObject() 方法; Hadoop 序列化机制调用对象的write() 方法,带一个DataOutput 类型的参数;
2、反序列化过程:
两者都是从流中读取数据,java的反序列化过程会不断的创建新的对象;Hadoop反序列化机制不断的复用对象(在Block 的某个对象上反复调用readFields(),可以在同一个对象上得到多个反序列化的结果,而不是多个反序列化的结果对象(对象被复用了),这减少了Java 对象的分配和回收,提高了应用的效率)
3、hadoop序列化的特征:
❑ 紧凑:由于带宽是Hadoop 集群中最稀 缺的资源,一个紧凑的序列化机制可以充分利用数据中心的带宽。
❑ 快速:在进程间通信(包括MapReduce 过程中涉及的数据交互)时会大量使用序列
化机制,因此,必须尽量减少序列化和反序列化的开销。
❑ 可扩展:随着系统的发展,系统间通信的协议会升级,类的定义会发生变化,序列化
机制需要支持这些升级和变化。
❑ 互操作:可以支持不同开发语言间的通信,如C++ 和Java 间的通信。这样的通信,
可以通过文件(需要精心设计文件的格式)或者后面介绍的IPC 机制实现。
下一篇将分析,hadoop序列化是如何做快速、紧凑、可扩展及互操作的?
java序列化机制采用的ObjectOutputStream 对象上调用writeObject() 方法; Hadoop 序列化机制调用对象的write() 方法,带一个DataOutput 类型的参数;
2、反序列化过程:
两者都是从流中读取数据,java的反序列化过程会不断的创建新的对象;Hadoop反序列化机制不断的复用对象(在Block 的某个对象上反复调用readFields(),可以在同一个对象上得到多个反序列化的结果,而不是多个反序列化的结果对象(对象被复用了),这减少了Java 对象的分配和回收,提高了应用的效率)
3、hadoop序列化的特征:
❑ 紧凑:由于带宽是Hadoop 集群中最稀 缺的资源,一个紧凑的序列化机制可以充分利用数据中心的带宽。
❑ 快速:在进程间通信(包括MapReduce 过程中涉及的数据交互)时会大量使用序列
化机制,因此,必须尽量减少序列化和反序列化的开销。
❑ 可扩展:随着系统的发展,系统间通信的协议会升级,类的定义会发生变化,序列化
机制需要支持这些升级和变化。
❑ 互操作:可以支持不同开发语言间的通信,如C++ 和Java 间的通信。这样的通信,
可以通过文件(需要精心设计文件的格式)或者后面介绍的IPC 机制实现。
下一篇将分析,hadoop序列化是如何做快速、紧凑、可扩展及互操作的?
相关文章推荐
- hadoop序列化机制与java序列化机制对比
- hadoop序列化机制与java序列化机制对比
- Java 和 Hadoop 序列化机制浅讲
- Java序列化机制中的类版本问题
- Java重要机制——对象序列化
- Java中的ReentrantLock和synchronized两种锁机制的对比
- Java序列化机制和原理
- java的序列化机制原理分析2
- Java序列化的机制和原理
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- java序列化与反序列化(4)------jdk原生序列化机制实现深拷贝
- 聊聊序列化(二)使用sun.misc.Unsafe绕过new机制来创建Java对象
- java序列化读取与文本文件读取数据效率对比
- Java序列化的机制和原理
- Java序列化机制拾遗
- 浅析Java序列化机制
- Hadoop序列化机制及实例
- hadoop的序列化机制
- 回首Java——Java序列化机制(Serialization,Deserialization)
- Java序列化机制和原理以及在eclipse中自动生成serialVersionUID