hadoop专有的数据类型

来源:互联网 发布:linux gzip解压命令 编辑:程序博客网 时间:2024/06/15 23:58

   一   Writable和writableComparable接口

         Writable接口:

               

import java.io.DataInput;import java.io.DataOutput;import java.io.IException;public interface Writable{        void write(DataOutput out)  throw IOException;       void readFields(DataInput in) throws IException;}

    其中Writable接口的主要目的是,当数据在网络上传输或从硬盘读写时,提供数据的序列化和反序列化机制。所有作用mapper或reducer输入或者输出值得数据类型(也就是  说,V1,V2或V3)都必须实现这个接口。

   如果作键的数据(K1,K2,K3)有着更为严格的要求:除了Writable之外,它必须实现标准java中的Comparable接口:

    

public interface Comparable{   public int compareTo(Object obj);}

二 wrapper类的介绍

    1  原始包装类

     BooleanWritable

     ByteWritable

     DoubleWritable

     FloatWritable

     IntWritable

     LongWritable

     VIntWritable:可变长度的整数类型

     VLongWritable:可变长度的长整形

   

   2  数组包装类

      这些类的实例可以存储IntWritable和DoubleWritable类型的数组,却不能存储原始的整数或者浮点数类型的数组,这些类需要继承Writable类。

         ArrayWritable

        TwoDArrayWritable

  

  3 Map包装类

     这些类允许使用java.util.Map接口作为键或值。它们被定义为Map<Writable,Writable>,并有效管理部分内部运行时类型检查。

        AbstractMapWritable:这个是其他具体的WritableMap包装类的基类

       MapWritable:这个是一个通用的map包装类,将Writable键映射为Writable值

      sortedMapWritable:这是MapWritable类的一个特殊实现,它同时也实现了SortedMap接口。




                                                                                                                                                                                           以上来自《hadoop基础教程》总结




0 0
原创粉丝点击