Hadoop中的序列化
1 简介 序列化和反序列化就是结构化对象和字节流之间的转换,主要用在内部进程的通讯和持久化存储方面。通讯格式需求 hadoop在节点间的内部通讯使用的是RPC,RPC协议把消息翻译成二进制字节流发送到远程节点,远程节点再通过反序列化把二进制流转成原始的信息。RPC的序列化需要实现以下几点: 1.压缩,可以起到压缩的效果,占用的宽带资源要小。 2.快速,内部进程为分布式系统构建了高速链路,因此在序列化和反序列化间必须是快速的,不能让传输速度成为瓶颈。 3.可扩展的,新的服务端为新的客户端增加了一个参数,老客户端照样可以使用。 4.兼容性好,可以支持多个语言的客户端存储格式需求 表面上看来序列化框架在持久化存储方面可能需要其他的一些特性,但事实上依然是那四点: 1.压缩,占用的空间更小 2.快速,可以快速读写 3.可扩展,可以以老格式读取老数据 4.兼容性好,可以支持多种语言的读写hadoop的序列化格式 hadoop自身的序列化存储格式就是实现了Writable接口的类,他只实现了前面两点,压缩和快速。但是不容易扩展,也不跨语言。 我们先来看下Writable接口,Writable接口定...