`
小网客
  • 浏览: 1244451 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop中Writable和WritableComparable

 
阅读更多

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

Writable:

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

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

WritableComparable:

WritableComparable<T> extends Writable, Comparable<T>

 

public interface Comparable<T> {
    public int 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;

 

 

1
0
分享到:
评论

相关推荐

    Hadoop中HDFS源代码分析

    这个包包含了Hadoop中的基本输入/输出类,如`BytesWritable`、`Text`等,以及序列化和反序列化机制,如`Writable`和`WritableComparable`接口。这些接口和类是HDFS数据传输的基础。 #### 3.2 RPC实现方法 Hadoop...

    hadoop自定义类型编程

    在Hadoop中,所有用于数据交换的对象都必须实现`org.apache.hadoop.io.Writable`接口。这个接口规定了如何序列化和反序列化对象,以便在网络间传输或写入磁盘。具体来说,你需要实现两个方法:`write()`和`...

    hadoop api.doc

    `Writable`接口定义了对象如何序列化和反序列化,而`WritableComparable`则添加了比较操作,常用于排序。此外,`InputFormat`和`OutputFormat`接口用于定义数据的输入和输出格式。 5. **org.apache.hadoop.ipc**: ...

    大数据第二次作业1

    在 Hadoop 中,所有的数据类型都需要实现 Writable 接口,以便这些类型定义的数据可以被网络传输和文件存储。今天,我们将深入探讨 Hadoop 中的数据类型和序列化机制。 Writable 接口 在 Hadoop 中,Writable 接口...

    java-Hadoop序列化

    例如,在MapReduce中,所有的键(Key)和值(Value)都必须实现`Writable`接口,以确保它们能够被正确地序列化和反序列化。此外,如果键还需要参与排序,那么还必须实现`WritableComparable`接口。 Hadoop提供了...

    Hadoop大作业排序.zip

    Writable 的子接口 WritableComparable,重写里面的 write, readFields 6 和 compareTo 方法,所以可以自定义一个类作为 key,类中包含 2 个 需要进行排序的字段,并在类中实现比较算法,先判断 first_name 是 否...

    java__Hadoop_MapReduce教程.pdf

    输入和输出的数据格式需实现Writable接口,键需实现WritableComparable接口,以便进行排序。 7. **语言兼容性**:虽然Hadoop框架是用Java实现的,但MapReduce应用程序可以使用多种语言编写,如通过Hadoop Streaming...

    Hadoop_MapReduce教程

    为了使框架能够处理这些键值对,必须确保它们实现了 `Writable` 接口,并且键类还需要实现 `WritableComparable` 接口,以便于排序。 - **作业输入输出类型**:对于一个典型的 MapReduce 作业,其输入和输出类型...

    精品课程推荐 大数据与云计算教程课件 优质大数据课程 09.MapReduce序列化(共29页).pptx

    \n\n二、Hadoop Writable类\n\nHadoop提供了一系列预定义的Writable类,用于基本数据类型(如BooleanWritable、IntWritable、FloatWritable等)和其他复杂数据结构(如ArrayWritable、MapWritable)的序列化。...

    18Nov_Serialization.docx

    在大数据处理领域,序列化和反序列化是至关重要的技术,特别是在Hadoop生态系统中。Hadoop的序列化机制主要用于在节点之间进行进程间通信(IPC)以及数据的持久化存储。文档"18Nov_Serialization.docx"主要讨论了...

    15、MapReduce介绍及wordcount

    Hadoop提供了一系列预定义的数据类型,如IntWritable、LongWritable、Text等,它们都实现了WritableComparable接口,可以直接在MapReduce程序中使用。如果需要自定义数据类型,需要实现Writable接口,如果该类型...

    hdfs源码分析整理

    HDFS使用Java的序列化机制来实现对象序列化,包括:Writable、WritableComparable和Serialization等接口。 在HDFS中,对象序列化主要应用于以下几个方面: * 文件元数据的序列化:HDFS将文件元数据序列化为字节流...

    大数据平台-MapReduce介绍.pdf

    其他重要类与接口包括Configuration类、Job类、Writable接口和WritableComparable接口。Configuration类读取配置文件。Job类配置、提交Job,控制其执行,查询其状态。Writable接口序列化输入输出。...

    MapReduce Tutorial 思考总结

    键值对的类需要实现Writable和WritableComparable接口,以便在网络中传输和排序。 4. **Mapper接口**:Mapper接收输入键值对,转换为中间键值对。应用通常只需要实现Mapper类中的map()方法,定义数据转换逻辑。 5....

    软件工程mapreduce.pdf

    在数据处理过程中,输入和输出都是以, value&gt;键值对的形式存在,需要实现Writable接口以进行序列化。key还需要实现WritableComparable接口,以支持框架内的排序操作。例如,经典的WordCount应用展示了MapReduce的...

    Sequencewholefileread

    序列文件支持多种编码方式,如Writable和WritableComparable接口实现的类。 在描述中提到,这个程序的目标是将多个小的序列文件作为一个整体来读取,而不是像通常那样逐个处理。这是因为在Hadoop中,处理小文件可能...

    MapReduce模型--Map端Combiners聚合

    - 在Hadoop中,使用自定义数据类型需要实现Writable接口,若需要作为key使用还需要实现WritableComparable接口。 - 例如,定义了一个Group类,它具有groupA、groupB和groupValue三个属性,groupValue属性是float...

    《大数据平台搭建与配置管理》期中试题试卷及答案.docx

    - **详细解析**:Hadoop集群搭建中常用的配置文件包括core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml。 38. **HA的背景** - **知识点**:High Availability (HA)产生的背景。 - **详细解析**:...

    MapReduce源码分析完整版.docx

    输入数据和输出数据都以这种形式存在,且key和value需实现Writable接口以便序列化,key还需要实现WritableComparable接口以支持排序。Map阶段,每个map任务接收输入数据,通过map函数生成中间结果。Reduce阶段,相同...

Global site tag (gtag.js) - Google Analytics