Hadoop的key和value的传递序列化需要涉及两个重要的接口Writable和WritableComparable

1> Writable:

  1. void write(DataOutput out) throws IOException;
  2. void readFields(DataInput in) throws IOException;

也就是读数据和写数据的方式

2> WritableComparable:

  1. WritableComparable<T> extends Writable, Comparable<T>
  1. publicinterface Comparable<T> {
  2. publicint compareTo(T o);
  3. }

也就是比Writable多了一个compareTo方法,这个的用途是是为了确定是不是相同的key,因此得出如下结论:

hadoop为Key的数据类型必须实现WritableComparable,而Value的数据类型只需要实现Writable即可,能做Key的一定可以做Value,能做Value的未必能做Key.

常用的WritableComparable实现如下:

  1. org.apache.hadoop.io.NullWritable;
  2. org.apache.hadoop.io.BooleanWritable;
  3. org.apache.hadoop.io.BytesWritable;
  4. org.apache.hadoop.io.DoubleWritable;
  5. org.apache.hadoop.io.FloatWritable;
  6. org.apache.hadoop.io.IntWritable;
  7. org.apache.hadoop.io.LongWritable;
  8. org.apache.hadoop.io.MD5Hash;
  9. org.apache.hadoop.io.Text;
  10. org.apache.hadoop.io.UTF8;
  11. org.apache.hadoop.io.VIntWritable;
  12. org.apache.hadoop.io.VLongWritable;

常用的Writable实现如下(除了上述的):

  1. org.apache.hadoop.io.TwoDArrayWritable;
  2. org.apache.hadoop.io.SortedMapWritable;
  3. org.apache.hadoop.io.ObjectWritable;
  4. org.apache.hadoop.io.MapWritable;
  5. org.apache.hadoop.io.ArrayWritable;

Hadoop中Writable和WritableComparable区别相关推荐

  1. Hadoop中Writable类

    1.Writable简单介绍 在前面的博客中,经常出现IntWritable,ByteWritable.....光从字面上,就可以看出,给人的感觉是基本数据类型 和 序列化!在Hadoop中自带的or ...

  2. Hadoop中Block和Split区别

    两者是从不同的角度来定义的: HDFS以固定大小的block为基本单位存储数据(分布式文件系统,实际存储角度,物理存储单位): MapReduce以split作为处理单位(编程模型角度,逻辑单位): ...

  3. hadoop中的序列化与Writable类

    本文地址:http://www.cnblogs.com/archimedes/p/hadoop-writable-class.html,转载请注明源地址. hadoop中自带的org.apache.h ...

  4. hadoop中实现定制Writable类

    Hadoop中有一套Writable实现可以满足大部分需求,但是在有些情况下,我们需要根据自己的需要构造一个新的实现,有了定制的Writable,我们就可以完全控制二进制表示和排序顺序. 为了演示如何 ...

  5. 一脸懵逼学习Hadoop中的MapReduce程序中自定义分组的实现

    1:首先搞好实体类对象: write 是把每个对象序列化到输出流,readFields是把输入流字节反序列化,实现WritableComparable,Java值对象的比较:一般需要重写toStrin ...

  6. 一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序...

    一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流. 反序列化(Deserialization)是序列化的逆过程.即把字节流转回结构化对象. Java序列化(java.i ...

  7. hadoop 中各种概念解释记忆

    https://blog.csdn.net/marvel_cheng/article/details/45480521 https://blog.csdn.net/qq_26437925/articl ...

  8. Hadoop与Alpach Spark的区别

    Hadoop与Alpach Spark的区别 1.概述 2.解决问题的层面不一样 3.两者可合可分 4.Spark数据处理速度秒杀MapReduce 5.数据恢复 6.二者的区别总结: 1.概述    ...

  9. Hadoop中Context类的作用和Mapper<LongWritable, Text, Text, LongWritable>.Context context是怎么回事【笔记自用】

    问题导读: 1.Context能干什么? 2.你对Context类了解多少? 3.Context在mapreduce中的作用是什么? 下面我们通过来源码,来得到Context的作用: 下面主要对Set ...

最新文章

  1. django模板过滤器
  2. VS里的VC++属性和C/C++属性有什么区别?
  3. tf.variable_scope和tf.name_scope的用法
  4. 正式突破两千粉丝!开心!
  5. python Lambda 表达式
  6. 50行代码,搞定敏感数据读写!
  7. 《springcloud超级入门》Spring Boot简介《五》
  8. 个人永久性免费-Excel催化剂功能第75波-标签式报表转标准数据源
  9. Rancher体系下容器日志采集
  10. flume流程之taildir-memory-hdfs
  11. Nginx源码分析 - 初探Nginx的架构(01)
  12. 13.TCP/IP 详解卷1 --- IGMP : Internet 管理组协议
  13. 查看sql语句执行时间/测试sql语句性能
  14. 人工智能在生活中的应用都有哪些?
  15. 蔡学镛:架构师最重视的文档
  16. 方正税控计算机配置,方正计算机U盘启动优先级的BIOS设置说明_IT /计算机_信息...
  17. 决策树模型回归可视化分析_基于Blank Friday商店销售数据分析构建回归模型
  18. 写给即将进入IT行业的应届生们——什么是IT行业
  19. IntelliJ IDEA 之汉化包安装
  20. 前端:打开你的摄像头

热门文章

  1. 深入跨域问题(2) - 利用 CORS 解决跨域
  2. Linux系统目录结构,文件类型以及ls、alias命令
  3. Linux用户、群组管理
  4. lnmp、lamp、lnmpa一键安装包
  5. 【R】神经网络相关的R包
  6. 输入和学生成绩的输出
  7. MySQL—异常处理
  8. offsetLeft 、offsetWidth、scrollHeight等的区别
  9. 我们距离AI编程还有多远?
  10. 【Leetcode】14、Longest Common Prefix