Hadoop的序列化

本文介绍了Hadoop中的序列化机制,包括Writable接口及其使用方式,还有其他几个关键接口如WritableComparable、RawComparator和WritableComparator的功能及应用。通过对比Java内建的序列化机制,突出了Hadoop序列化机制的优势,如紧凑性和快速性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、对象的序列化:将对象编码成一个字节流,以及从字节流中重新构建对象。

2、java内建的序列化机制

      在Java中,只需要在类声明中加入 implements Serializable即可。具体操作如在对象流ObjectOutputStream对象上调用writeObject()等。Java序列化参见《Java Object Serialization Specification》中的规范。

      缺点是序列化输出中保存了大量的附加信息,导致序列化结果膨胀。

3、Hadoop序列化机制

      其需要具有紧凑、快速、可扩展、互操作等特征。

   

      3.1  Hadoop Writable机制

              public  interface Writable{

                        void write(DataOutput out) throws IOException;

                        void readFields(DataInput in) throws IOException;

      }

     使用例如,out.writeLong(Id) ,  id = in.readLong()

    Hadoop序列化机制中还包括了另外几个重要的接口:WritableComparable、RawComparator和WritableComparator;

    WritableComparable:ByteComparable、IntWritable、DoubleWritable

    RawComparator:它是一个泛型类,允许执行者比较流中读取的未被反序列化为对象的记录,从而省去了创建对象的所有开销,接口包含

                                       public  int compare(byte[]  b1 , int s1 , int l1 , byte[] b2 , int s2 , int l2)方法。

     WritableComparator:它是RawComparator对WritableComparable类的一个通用实现,它提供了一个RawComparator的compare()方法

                                   的默认实现;充当了RawComparator实例的一个工厂方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值