淘先锋技术网

首页 1 2 3 4 5 6 7

1、概述 
Java 的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额 外的信息(各种校验信息,header,继承体系等),不便于在网络中高效传输;所以,Hadoop 自己开发了一套序列化机制(参与序列化的对象的类都要实现 Writable 接口),精简,高效 
 
Hadoop 中的序列化框架已经对基本类型和 null 提供了序列化的实现了。分别是: 
 
2、Java 序列化 
以案例为例说明: 

3、自定义对象实现 MapReduce 框架的序列化 
如果需要将自定义的bean放在key中传输,则还需要实现Comparable接口,因为MapReduce 框中的 shuffle 过程一定会对 key 进行排序,此时,自定义的 bean 实现的接口应该是: public  class  FlowBean  implements  WritableComparable<FlowBean> 
 

以案例为例说明 下面是进行了序列化的 FlowBean 类: 

下面是统计上行流量和下行流量之和的 MR 程序 FlowSum: