一、序列化概念
1 序列化(Serialization)是指把結構化對象轉化爲字節流。
2 反序列化(Deserialization)是序列化的逆過程。即把字節流轉回結構化對象。
3 Java序列化(java.io.Serializable)。
二、Hadoop序列化的特點
1 緊湊:高效使用存儲空間。
2 快速:讀寫數據的額外開銷小
3 可擴展:可透明地讀取老格式的數據
4 互操作:支持多語言的交互
三、Hadoop節點間通信
四、Hadoop序列化的作用
序列化在分佈式環境的兩大作用:進程間通信,永久存儲。
五、Hadoop的序列化格式:Writable
1 Writable接口, 是根據 DataInput 和 DataOutput 實現的簡單、有效的序列化對象
2 MR的任意Key和Value必須實現Writable接口.
3 MR的任意key必須實現WritableComparable接口
4 Writable的層次結構
5 Text一般認爲它等價於java.lang.String的Writable。針對UTF-8序列。例如:Text test = new Text("test");
6 Java基本類型對應的Writable實現
六、使用Writable
1 .自定義的對象實現Writable
2 Java值對象的比較
實現WritableComparable.
一般需要重寫toString(),hashCode(),equals()方法