zoukankan      html  css  js  c++  java
  • Hadoop权威指南: 专有数据类型

    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接口)
  • 相关阅读:
    springmvc log4j 配置
    intellij idea maven springmvc 环境搭建
    spring,property not found on type
    intellij idea maven 工程生成可执行的jar
    device eth0 does not seem to be present, delaying initialization
    macos ssh host配置及免密登陆
    centos7 搭建 docker 环境
    通过rest接口获取自增id (twitter snowflake算法)
    微信小程序开发体验
    gitbook 制作 beego 参考手册
  • 原文地址:https://www.cnblogs.com/bovenson/p/5730842.html
Copyright © 2011-2022 走看看