HADOOP数据类型 | JAVA类型 |
---|---|
IntWritable | int |
FloatWritable | float |
LongWritable | long |
DoubleWritable | double |
Text | string |
BooleanWritable | boolean |
ByteWritable | byte |
MapWritable | map |
ArrayWritable | array |
1)为什么要序列化?
方便存储“活的对象”
2)什么是序列化?
序列化就是把内存中的对象,转化成字节序列以方便存储和网络传输。
反序列化就是将收到的字节序列或者硬盘当中的持久化数据,转化成内存中的对象。
3)Java中序列化接口 Serializable
为什么不使用java提供的序列化接口?
java的序列化是一个重量级的序列化框架,一个对象被序列化后会附带很多额外的信息(校验信息,header信息,继承信息等),不便于在网络中高效传输,所以hadoop开发了一套序列化机制(Writable),精简/高效。
4)为什么序列化在hadoop中很重要?
hadoop通信时通过远程调用(rpc)实现的,需要进行序列化
5)hadoop序列化特点:
(1)紧凑,充分利用网络带宽
(2)快速
(3)可拓展性强
(4)互操作,支持不同语言写的客户端和服务端(支持多语言的交互)。