序列化概述
1.1什么是序列化
序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便
于存储到磁盘(持久化)和网络传输。
反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化
数据,转换成内存中的对象。
1.2为什么要序列化
一般来说,“活的” 对象只生存在内存里,关机断电就没有了。且“活的”
对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。然而序
列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机。
1.3为什么不用Java的序列化
Java的序列化是一个重 量级序列化框架(Serializable) ,-一个对象被序列化后,会
附带很多额外的信息(各种校验信息,Header, 继承体系等),不便于在网络中高效
传输。所以,Hadoop自 己开发了一列化机制(Writable)
o
Hadoop序列化特点:
(1)紧凑:高效使用存储空间;
(2)快速:读写数据的额外开销小;
(3)可扩展:随着通信协议的升级而可升级;
(4)互操作:支持多语言的交互。