序列化概念:java
序列化(Serialization):是指把結構化對象轉化爲字節流。數組
反序列化(Deserialization):是序列化的逆過程,即把字節流轉回結構化對象。分佈式
Java序列化:(java.io.Serializable)oop
Hadoop序列化:spa
序列化格式特色:對象
一、緊湊:高效使用存儲空間。索引
二、快速:讀寫數據的額外開銷小。接口
三、可擴展:可透明地讀取老格式的數據。進程
四、互操做:支持多語言的交互。it
Hadoop想要實現序列化就必需要實現Writable接口。
Writable接口:
Writable接口是根據DataInput和DataOutput實現的簡單、有效的序列化對象。
MapReduce的任意Key必須實現WritableComparable接口。
MapReduce的任意Key和Value必須實現Writable接口。
經常使用的Writable實現類:
Hadoop序列化的做用:
序列化在分佈式環境的兩大做用:進程間通訊,永久存儲。
Hadoop節點間通訊:
Hadoop中基於文件的存儲結構:
一、SequenceFile無序存儲。
二、MapFile會對Key創建索引文件,Value按Key順序存儲。
a)基於MapFile的結構有:
一、ArrayFile:像咱們使用的數組同樣,Key值爲序列化的數字。
二、SetFile:只有Key,Value爲不可變的數。
三、BloomMapFile:在MapFile的基礎上增長了一個/bloom文件,包含的是
二進制的過濾表,在每一次寫操做完成時,會更新這個過濾表。
Name:Xr
Date:2014-03-02 21:28