Hadoop的序列化机制

###hadoop的!序列化!机制
在org.apache.hadoop.hdfs.protocol包下
存放了Blockjava

因为java自己自带的序列化机制在序列化时夹杂着太多的类的元数据信息,
使得一个简单的java类序列化出来的数据十分臃肿。apache

hadoop本身实现了Writable接口,该接口有以下两个方法框架

 //写出    
 void write(DataOutput out) throws IOException;
 //读入
 void readFields(DataInput in) throws IOException;
 
 org.apache.hadoop.io包中的 RawComparator 接口容许直接从流中进行对比,从而省去了建立对象的开销。
 
###Hadoop的序列化框架
hadoop提供了一个简单的序列化框架
在org.apache.hadoop.io.serializer包中
Serialization<T>工具

//客户端用于判断序列化是否支持该对象
boolean accept(Class<?> c);
//得到Serializer的实现
Serializer<T> getSerializer(Class<T> c);
//得到反序列化对象Deserializer的实现
Deserializer<T> getDeserializer(Class<T> c);oop

Serialization中包含多个Serializer<T>(串行器),其中有
static class Deserializer
static class Serializer编码

###Hadoop!压缩!
在org.apache.hadoop.io.compress包中提供了编码和解码的一些工具代理

CompressionCodec提供了编码工具和解码工具对象

Decompressor(解压器)
Compressor(压缩器)接口


CompressionInputStream(压缩流)
DecompressorStream(解压流)ip


###hadoop的RPC

 
###Java动态代理


###Java NIO
#通道  Channel
#缓冲区Buffer
#Buffer遵照如下4个不变式
#0<mark<position<limit<capacity
#选择器selector

#IPC链接 在org.apache.hadoop.ipc中,存在Client connections成员变量,用来保存ConnectionId和Connection的对应关系 private Hashtable<ConnectionId, Connection> connections = new Hashtable<ConnectionId, Connection>();

相关文章
相关标签/搜索