Hadoop的序列化机制

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

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

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);

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

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

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

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


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


###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>();

转载于:https://my.oschina.net/u/3424826/blog/1975941

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值