Hadoop中Writable和WritableComparable区别
Hadoop的key和value的传递序列化需要涉及两个重要的接口Writable和WritableComparable
1> Writable:
- void write(DataOutput out) throws IOException;
- void readFields(DataInput in) throws IOException;
也就是读数据和写数据的方式
2> WritableComparable:
- WritableComparable<T> extends Writable, Comparable<T>
- publicinterface Comparable<T> {
- publicint compareTo(T o);
- }
也就是比Writable多了一个compareTo方法,这个的用途是是为了确定是不是相同的key,因此得出如下结论:
hadoop为Key的数据类型必须实现WritableComparable,而Value的数据类型只需要实现Writable即可,能做Key的一定可以做Value,能做Value的未必能做Key.
常用的WritableComparable实现如下:
- org.apache.hadoop.io.NullWritable;
- org.apache.hadoop.io.BooleanWritable;
- org.apache.hadoop.io.BytesWritable;
- org.apache.hadoop.io.DoubleWritable;
- org.apache.hadoop.io.FloatWritable;
- org.apache.hadoop.io.IntWritable;
- org.apache.hadoop.io.LongWritable;
- org.apache.hadoop.io.MD5Hash;
- org.apache.hadoop.io.Text;
- org.apache.hadoop.io.UTF8;
- org.apache.hadoop.io.VIntWritable;
- org.apache.hadoop.io.VLongWritable;
常用的Writable实现如下(除了上述的):
- org.apache.hadoop.io.TwoDArrayWritable;
- org.apache.hadoop.io.SortedMapWritable;
- org.apache.hadoop.io.ObjectWritable;
- org.apache.hadoop.io.MapWritable;
- org.apache.hadoop.io.ArrayWritable;
Hadoop中Writable和WritableComparable区别相关推荐
- Hadoop中Writable类
1.Writable简单介绍 在前面的博客中,经常出现IntWritable,ByteWritable.....光从字面上,就可以看出,给人的感觉是基本数据类型 和 序列化!在Hadoop中自带的or ...
- Hadoop中Block和Split区别
两者是从不同的角度来定义的: HDFS以固定大小的block为基本单位存储数据(分布式文件系统,实际存储角度,物理存储单位): MapReduce以split作为处理单位(编程模型角度,逻辑单位): ...
- hadoop中的序列化与Writable类
本文地址:http://www.cnblogs.com/archimedes/p/hadoop-writable-class.html,转载请注明源地址. hadoop中自带的org.apache.h ...
- hadoop中实现定制Writable类
Hadoop中有一套Writable实现可以满足大部分需求,但是在有些情况下,我们需要根据自己的需要构造一个新的实现,有了定制的Writable,我们就可以完全控制二进制表示和排序顺序. 为了演示如何 ...
- 一脸懵逼学习Hadoop中的MapReduce程序中自定义分组的实现
1:首先搞好实体类对象: write 是把每个对象序列化到输出流,readFields是把输入流字节反序列化,实现WritableComparable,Java值对象的比较:一般需要重写toStrin ...
- 一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序...
一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流. 反序列化(Deserialization)是序列化的逆过程.即把字节流转回结构化对象. Java序列化(java.i ...
- hadoop 中各种概念解释记忆
https://blog.csdn.net/marvel_cheng/article/details/45480521 https://blog.csdn.net/qq_26437925/articl ...
- Hadoop与Alpach Spark的区别
Hadoop与Alpach Spark的区别 1.概述 2.解决问题的层面不一样 3.两者可合可分 4.Spark数据处理速度秒杀MapReduce 5.数据恢复 6.二者的区别总结: 1.概述 ...
- Hadoop中Context类的作用和Mapper<LongWritable, Text, Text, LongWritable>.Context context是怎么回事【笔记自用】
问题导读: 1.Context能干什么? 2.你对Context类了解多少? 3.Context在mapreduce中的作用是什么? 下面我们通过来源码,来得到Context的作用: 下面主要对Set ...
最新文章
- django模板过滤器
- VS里的VC++属性和C/C++属性有什么区别?
- tf.variable_scope和tf.name_scope的用法
- 正式突破两千粉丝!开心!
- python Lambda 表达式
- 50行代码,搞定敏感数据读写!
- 《springcloud超级入门》Spring Boot简介《五》
- 个人永久性免费-Excel催化剂功能第75波-标签式报表转标准数据源
- Rancher体系下容器日志采集
- flume流程之taildir-memory-hdfs
- Nginx源码分析 - 初探Nginx的架构(01)
- 13.TCP/IP 详解卷1 --- IGMP : Internet 管理组协议
- 查看sql语句执行时间/测试sql语句性能
- 人工智能在生活中的应用都有哪些?
- 蔡学镛:架构师最重视的文档
- 方正税控计算机配置,方正计算机U盘启动优先级的BIOS设置说明_IT /计算机_信息...
- 决策树模型回归可视化分析_基于Blank Friday商店销售数据分析构建回归模型
- 写给即将进入IT行业的应届生们——什么是IT行业
- IntelliJ IDEA 之汉化包安装
- 前端:打开你的摄像头