序列化概念:
序列化(Serialization):是指把结构化对象转化为字节流。
反序列化(Deserialization):是序列化的逆过程,即把字节流转回结构化对象。
Java序列化:(java.io.Serializable)
Hadoop序列化:
序列化格式特点:
1、紧凑:高效使用存储空间。
2、快速:读写数据的额外开销小。
3、可扩展:可透明地读取老格式的数据。
4、互操作:支持多语言的交互。
Hadoop想要实现序列化就必须要实现Writable接口。
Writable接口:
Writable接口是根据DataInput和DataOutput实现的简单、有效的序列化对象。
MapReduce的任意Key必须实现WritableComparable接口。
MapReduce的任意Key和Value必须实现Writable接口。
常用的Writable实现类:
Hadoop序列化的作用:
序列化在分布式环境的两大作用:进程间通信,永久存储。
Hadoop节点间通信:
Hadoop中基于文件的存储结构:
1、SequenceFile无序存储。
2、MapFile会对Key建立索引文件,Value按Key顺序存储。
a)基于MapFile的结构有:
1、ArrayFile:像我们使用的数组一样,Key值为序列化的数字。
2、SetFile:只有Key,Value为不可变的数。
3、BloomMapFile:在MapFile的基础上增加了一个/bloom文件,包含的是
二进制的过滤表,在每一次写操作完成时,会更新这个过滤表。
Name:Xr
Date:2014-03-02 21:28