Hadoop中的序列化和基於文件的存儲結構(9)

        序列化概念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

相關文章
相關標籤/搜索