什么是序列化
序列化:
把内存中的对象以字节数组的形式写入磁盘的过程
反序列化:
把磁盘中的字节数组读到内存中
为什么不用Java的序列化机制
Java 的序列化是一个重量级序列化框架( Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息, header,继承体系等),不便于在网络中高效传输。在Java中处理的数据量不是很大,没有问题。
如果数据量达到海量数据的级别,不适合使用java本身的序列化
Hadoop中的序列化
在Java的基础上进行改进,形成了自己的轻量级的序列化机制(Writable)
常用数据序列化类型
Java | MapReduce |
---|---|
byte | ByteWritable |
short | ShortWritable |
int | IntWritbale |
long | LongWritable |
float | FloatWritable |
double | DoubleWritable |
char | CharWritable |
boolean | BooleanWritable |
String | Text |