序列化是指将一个对象编码成字节流,以后从字节流中重构对象;java
为何须要序列化?网络
答:用序列化接口能够将对象实例从存储到本地文件或者传送到网络的另外一端的节点上;oop
序列化过程:编码
序列化的三种主要用途:spa
1.做为一种持久化的格式对象
2. 一种网络节点间通讯的数据格式接口
3. 拷贝和克隆hadoop
hadoop的序列化机制:资源
调用write()方法将对象序列化到流中,调用readFile()方法进行反序列化;开发
java序列化和hadoop序列化的主要区别:
java序列化后的对象不能复用,故在反序列化过程当中不断建立新对象
hadoop序列化后的对象能够复用,故反序列化过程当中能够复用对象,能够获得一个序列化后的对象的多个反序列化后的结果
hadoop的序列化机制减小了对java对象的分配和回收,提升了应用效率;
hadoop序列化机制的优点:
1.紧凑:Hadoop中最稀缺的资源是宽带,因此紧凑的序列化机制能够充分的利用宽带。
2.快速:通讯时大量使用序列化机制,所以,须要减小序列化和反序列化的开销。
3.可扩展:随着通讯协议的升级而可升级。
4.互操做:支持不一样开发语言的通讯。
Hadoop 序列化机制:
Hadoop经过Writable接口实现的序列化机制。
接口提供两个方法,write和readFiles。
Hadoop还包含另外几个重要的序列化接口,WritableCompareable、RawComparator、WritableComparator。