[hadoop2.7.1]I/O之Writable的实现类及子接口

Hadoop引入org.apache.hadoop.io.Writable接口,是所有可序列化对象必须实现的接口。在hadoop2.71.中,它共有6个子接口。 WritableComparable,顾名思义,它提供类型比较的能力,WritableComparables 能够通过 Comparators进行互相比较。主要是针对MapReduce而设计的,中间有个排序很重要。在 Hadoop Map-Reduce framework中,任何key值类型都要实现这个接口。
摘要由CSDN通过智能技术生成

Writable子接口:


Hadoop引入org.apache.hadoop.io.Writable接口,是所有可序列化对象必须实现的接口

在hadoop2.71.中,Writable共有6个子接口:

Counter,CounterGroup,CounterGroupBase<T>,InputSplit,InputSplitWithLocationInfo,WritableComparable<T>

在org.apache.hadoop.io中有一个:WritableComparable<T>

    WritableComparable,顾名思义,它提供类型比较的能力,WritableComparables 能够通过  Comparators进行互相比较。主要是针对MapReduce而设计的,中间有个排序很重要。在 Hadoop Map-Reduce framework中,任何key值类型都要实现这个接口。WritableComparable是可序列化的,所以,同样实现了readFiels()和write()这两个序列化和反序列化方法,它多了一个比较的能力,所以实现compareTo()方法,该方法即是比较和排序规则的实现,因此,使用该类的实现类MR中的key值就既能可序列化又是可比较的。当然了,如果仅是做为值使用的话,仅实现Writable接口即可,接下来也要重点介绍WritableComparable这个接口。

另外在org.apache.hadoop.io还有一个相关接口:WritableFactory

同时在这个包里有一个实现类:WritableFactories

    其目的就是将所有Writable类型注册到WritableFactories里统一治理,利用WritableFactories形成注册到这里的Writable对象,这种统一管理的方式主要提供系统可用Writable类型的方便性。如若系统规模很大,Writable类型对象四处疏散在系统,那么有时不能很直观地看到一个类型是否是Writable类型。通过这个WritableFactory你可以返回你想要的Writable对象,这个工厂产生的Writable对象可能会用于某些ObjectWritable的readFileds()等方法中。


Writable实现类:


当然了,Writable有着自己一大堆的实现类:

AbstractCounters, org.apache.hadoop.security.token.delegation.AbstractDelegationTokenIdentifier,AbstractMapWritable,AccessControlList,AggregatedLogFormat.LogKey,AMRMTokenIdentifier,ArrayPrimitiveWritable,ArrayWritable,BloomFilter,BooleanWritable,BytesWritable,ByteWritable,ClientToAMTokenIdentifier,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值