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实现类

                212059_Z3fz_1455021.jpg

        Hadoop序列化的作用:

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

        Hadoop节点间通信:

                            212223_uDn9_1455021.png


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

转载于:https://my.oschina.net/Xiao629/blog/204428

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值