Hadoop-2.4.1学习之Writable及其实现

49 篇文章 22 订阅 ¥9.90 ¥99.00
29 篇文章 18 订阅 ¥9.90 ¥99.00
本文深入探讨了Hadoop中的序列化协议,重点关注Writable和WritableComparable接口。内容包括常用键值类型的实现、自定义序列化类的需求、hashCode()与equals()方法的重要性,以及IntWritable和Text类的源码分析。通过这些,读者可以了解如何编写自己的WritableComparable类。
摘要由CSDN通过智能技术生成

      Hadoop基于DataInput和DataOutput实现了简单、高效的序列化协议,而Writable接口定义了Hadoop序列化的方法,MapReduce框架中的任何键值类型都实现了该接口,比如IntWritable、LongWritable等,详细的类关系见下图:


      通过上图可以发现,MapReduce中常用的键值类型都没有直接实现Writable接口,而是实现了该接口的子接口WritableComparable,该子接口还继承了Comparable接口,这意味着实现类除了可以序列化和发序列化外,还能够彼此进行比较,这是因为当这些类做为键在MapReduce中使用时,在排序阶段需要对其进行比较排序。但这并不是说如果实现自定义的序列化类时,必须实现WritableComparable接口,仅当自定义的序列化类也用作键时才必须实现该接口,如果仅是做为值使用的话,仅实现Writable接口即可。

      当自定义的序列化类用做键时,需要考虑到在根据键进行分区时经常用到hashCode()方法,因此需要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyWalker_ONLY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值