什么没有 发表于 2016-12-8 10:06:04

Hadoop读书笔记----(四)序列化

  Hadoop 分布式计算,序列化是Hadoop通过RPC调用,使得每个节点之间有效沟通的方法。
  于是序列化就成为了分布式计算的一个重要课题。
  序列化之后,对于分布式计算还需要排序。因此排序也相当重要:
  Hadoop要求对象在序列化之后的字节也能够支持排序,以提高计算速度,还不必产生很多无谓的数据。
  下面两张图记录了JAVA原生类型转化成序列化以后所占的字节数
  

  
 

  Hadoop里关于Writeable 相关类 的继承树:
  

  A,Text类相当于 java.lang.String,不同的是Text用的是UTF-8的编码来解析的。
  也就是说在Indexing的时候会和String有不一样地方:
  举例:
  
System.out.println(s.length())
  输出为5
  
System.out.println(s.getLength())
  输出为10
  联系:
  String 的charAt返回 char所在的第几个为止========== Text的find()方法与之效果一样
  String 的 codePointAt 返回unicode地址   ========== Text 的charAt()返回 unicode 地址
  举例: 
  String s = "\u0041\u00DF\u6771\uD801\uDC00";
  assertThat(s.codePointAt(3), is(0x10400));
  输出: true
  Text s = "\u0041\u00DF\u6771\uD801\uDC00";
  assertThat(t.charAt(6), is(0x10400));
  输出: true (此输出与 String.codePointAt()效果一样)
  B,NullWritable 单例
页: [1]
查看完整版本: Hadoop读书笔记----(四)序列化