Hadoop中的序列化和基于文件的存储结构(9)

        序列化概念

                    序列化(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中的序列化和基于文件的存储结构(9)

        Hadoop序列化的作用:

                            序列化在分布式环境的两大作用:进程间通信,永久存储。

        Hadoop节点间通信:

                            Hadoop中的序列化和基于文件的存储结构(9)


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

你可能感兴趣的:(Hadoop中的序列化和基于文件的存储结构(9))