一 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; }
如果作键的数据(K1,K2,K3)有着更为严格的要求:除了Writable之外,它必须实现标准java中的Comparable接口:
public interface Comparable{ public int compareTo(Object obj); }
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基础教程》总结