1. 什么是序列化
序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。
反序列化就是将收到的字节序列(或其他数据传输协议)或者磁盘的持久化数据,转换成内存中的对象。
2. 为什么要序列化
一般来说,"活的"对象只生存在内存中,关机断电就没有了。而且活的对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。然后序列化可以存储"活的"对象,可以将"活的"对象发送到远程计算机。
3. 为什么不用java序列化
java序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,Header,继承体系等),不便于在网络中高效传输。而hadoop的序列化只是会附带简单的校验,紧凑存储空间少,快速传输速度块。互操作性好。