Hadoop 实现WritableComparable的类

         首先要了解hadoop的序列化

序列化(serialization):
     序列化指的是将结构化对象转为字节流以便于通过网络进行传输或写入持久存储的过程。反序列化指的是将字节流转为一系列结构化对象的过程。
     序列化用于:进程间通信与持久存储。
     RPC序列化建议的特性
         1.紧凑(Compact)即方便网络传输,充分利用存储空间
         2.快速(Fast)即序列化及反序列化性能要好
         3.扩展性(Extensible)即协议有变化,可以支持新的需求
         4.互操作性(Interoperable)即客户端及服务器端不依赖语言的实现 
    

          下面示例如何为一个类实现Writablecomparable接口

public class Edge implements WritableCompatable<Edge>
{
	private int a;
	private String b;
	
	@override
	/**这个函数用来说明如何读入数据*/
	public void readFields(DataInput in)throws IOException
	{
		a = in.readInt();
		b = in.readUTF();
	}
	
	@override
	public void write(DataOuput out)throws IOException
	{
		out.writeInt(a);
		out.writeUTF(b);
	} 

	@override
	public int compareTo(Edge o)
	{
		int thisValue = this.a;
		int thatValue = o.a;
		return (thisValue<thatValue ? -1:(thisValue==thatValue ? 0:1));
	}
}

这样实现了WriteableComparable接口的类,不仅可以当键,还可以作为值使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值