Hadoop序列化
什么是序列化?
简单来说序列化就是把内存中的对象转换成字节流,用于进行网络之间的数据传输或者存储到磁盘上。需要对象实现Serializable接口,这个Serializable接口中没有方法,只是作为标记来使用。
有序列化,就有对应的反序列化,反序列化就是将字节流转换为内存中的对象。
hadoop为什么不用Java的序列化?
原因:
Java的序列化是一个重量级序列化框架,一个对象被序列化后,会附带很多额外的信息(各种校验信息,集成体系等),不便于在网络中高效的传输,所以Hadoop自己开发了一套序列化机制。
Hadoop序列化特点:
紧凑:高效的使用存储空间
快速:读写数据的额外开销小
可扩展:随着通信协议的升级而升级
互操作:支持多语言的交互