Writable 和 WritableComparable接口

Writable接口

  • ** Writable接口的主要目的是,当数据在网络上传输或从硬盘读写时,提供数据的序列化和反序列化机智 **

  • ** 所有用作mapper或reducer输入或输出的数据类型都必须实现这个接口 **

Comparable接口

  • ** 用作键的数据有着更为严格的要求,除实现Writable接口之外,它必须实现标准Java中的Comparable接口 **
  • compare方法的返回值为-1(小于,<),0(=),1(大于>)
  • 作为一个方便使用的接口,Hadoop在org.apache.hadoop.io包里提供了一个WritableComparable接口,定义如下代码所示.
    public interface WritableComparable extends Writable, Comparable { }

wrapper类

** Hadoop提供了包装Java原始类型并实现了WritableComparable的类,它们被放置在org.apache.hadoop.io包下.这些包装类如下. **

原始包装类

** 这些类在概念上与原始包装类相似.它们保持一个原始值,该值既可以在创建类的时候创建,也可以通过setter方法设置
这些类有: **

  • BooleanWritable
  • ByteWritable
  • DoubleWritable
  • FloatWritable
  • IntWritable
  • LongWritable
  • VIntWritable(可变长度的整数类型)
  • VLongWritable(可变长度的长整数类型)

数组包装类

** 这些类为其他Writable对象数组提供了可写封装. ** 例如这些类的实例可以储存IntWritable类型的数组,却不能储存原始的整型(int)数组.** 这些类需要继承Writable类
这些类如下所示. **

  • ArrayWritable
  • TwoDArrayWritable

Map包装类

** 这些类允许使用java.util.Map接口作为键或者值,他们被定义为Map<Writable,Writable> 并有效管理部分内部运行时类型检查. ** 这就意味着弱化了编译类型检查
** 如下所示. **

  • AbstractMapWritable(这是其他具体的Writable map包装类的基类)
  • MapWritable(通用的map包装类,将Writable键映射为Writable值)
  • SortedMapWritable(MapWritable类的一个特殊实现,同时实现了SortedMap接口)

Hadoop权威指南: 专有数据类型的更多相关文章

  1. Hadoop权威指南(中文版,第2版)【分享】

    下载地址 Hadoop权威指南(中文版,第2版) http://download.csdn.net/download/u011000529/5726789 (友情提示:请点击右下的 “联通下载” 或者 ...

  2. Hadoop权威指南学习笔记二

    MapReduce简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.n ...

  3. 基于python的《Hadoop权威指南》一书中气象数据下载和map reduce化数据处理及其可视化

    文档内容: 1:下载<hadoop权威指南>中的气象数据 2:对下载的气象数据归档整理并读取数据 3:对气象数据进行map reduce进行处理 关键词:<Hadoop权威指南> ...

  4. Hadoop权威指南:MapReduce应用开发

    Hadoop权威指南:MapReduce应用开发 [TOC] 一般流程 编写map函数和reduce函数 编写驱动程序运行作业 用于配置的API Hadoop中的组件是通过Hadoop自己的配置API ...

  5. Hadoop权威指南:通过FileSystem API读取数据

    Hadoop权威指南:通过FileSystem API读取数据 [TOC] 在Hadoop中,FileSystem是一个通用的文件系统API 获取FileSystem实例的几个静态方法 public ...

  6. Hadoop权威指南:从Hadoop URL读取数据

    [TOC] Hadoop权威指南:从Hadoop URL读取数据 使用java.net.URL对象从Hadoop文件系统读取文件 实现类似linux中cat命令的程序 文件名 HDFSCat.java ...

  7. Hadoop权威指南:压缩

    Hadoop权威指南:压缩 [TOC] 文件压缩的两个好处: 减少储存文件所需要的磁盘空间 加速数据在网络和磁盘上的传输 压缩格式总结: 压缩格式 工具 算法 文件扩展名 是否可切分 DEFLATE ...

  8. Hadoop权威指南:数据完整性

    Hadoop权威指南:数据完整性 [TOC] 常用的错误检测码是CRC-32(循环冗余校验) HDFS的数据完整性 HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和 datanode负责 ...

  9. Hadoop权威指南:HDFS-Hadoop存档

    Hadoop权威指南:HDFS-Hadoop存档 [TOC] 每个文件按块方式存储, 每个块的元数据存储在namenode的内存中 Hadoop存档文件或HAR文件是一个更高效的文件存档工具,它将文件 ...

随机推荐

  1. Application Fundamentals

    Application Fundamentals 署名:译言biAji 链接:http://developer.android.com/guide/topics/fundamentals.html 应 ...

  2. git使用系列(一)

    git commit 的时候出现了问题: change not staged for commit. no changes added to commit(use "git add" ...

  3. Mysql的MySqlDataReader对于MysqlConnection是独占式

    写Secondlife智能体的知识系统小插件的时候遇到的这个问题. 在把某个NPC的全部知识复制给另一个NPC的时候,对数据库操作,为了提升一点效率希望与数据库建立一次连接,全部添加进表以后再断开连接 ...

  4. HDU 5624 KK's Reconstruction

    这题目测是数据水了.我这种暴力写法显然是可以卡超时的. 假设有2000个点,15000条边,前面10000条不能构成树,后面5000条可以,这种数据显然可以卡超时. #include <stdi ...

  5. HTML学习二(基础)

    HTML标题标题(Heading)是通过<h1>-<h6>等标签进行定义的<h1>定义最大标题<h6>定义最小标题注释:浏览器会自动地在标题的前后添加空 ...

  6. 51nod1119(除法取模)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1119 题意:中文题诶- 思路:这题数据比较大直接暴力肯定是不 ...

  7. 51nod算法马拉松 contest7

    A题 链接:http://www.51nod.com/contest/problem.html#!problemId=1417 推荐链接:http://blog.csdn.net/a837199685 ...

  8. new sun.misc.BASE64Encoder()报错找不到jar包

    解决方案1(推荐): 只需要在project build path中先移除JRE System Library,再添加库JRE System Library,重新编译后就一切正常了. 解决方案2: W ...

  9. Java Base64、AES、SHA1、MD5加密算法(转载)

    package com.example.decript; import java.io.UnsupportedEncodingException; import java.security.Inval ...

  10. iOS子线程更新UI的两种方法

    http://blog.csdn.net/libaineu2004/article/details/45368427 方法1:performSelectorOnMainThread[self perf ...