序列化是指將一個對象編碼成字節流,以後從字節流中重構對象;java
爲何須要序列化?網絡
答:用序列化接口能夠將對象實例從存儲到本地文件或者傳送到網絡的另外一端的節點上;oop
序列化過程:編碼
序列化的三種主要用途:spa
1.做爲一種持久化的格式對象
2. 一種網絡節點間通訊的數據格式接口
3. 拷貝和克隆hadoop
hadoop的序列化機制:資源
調用write()方法將對象序列化到流中,調用readFile()方法進行反序列化;開發
java序列化和hadoop序列化的主要區別:
java序列化後的對象不能複用,故在反序列化過程當中不斷建立新對象
hadoop序列化後的對象能夠複用,故反序列化過程當中能夠複用對象,能夠獲得一個序列化後的對象的多個反序列化後的結果
hadoop的序列化機制減小了對java對象的分配和回收,提升了應用效率;
hadoop序列化機制的優點:
1.緊湊:Hadoop中最稀缺的資源是寬帶,因此緊湊的序列化機制能夠充分的利用寬帶。
2.快速:通訊時大量使用序列化機制,所以,須要減小序列化和反序列化的開銷。
3.可擴展:隨着通訊協議的升級而可升級。
4.互操做:支持不一樣開發語言的通訊。
Hadoop 序列化機制:
Hadoop經過Writable接口實現的序列化機制。
接口提供兩個方法,write和readFiles。
Hadoop還包含另外幾個重要的序列化接口,WritableCompareable、RawComparator、WritableComparator。