HBase相关论文阅读

来源:互联网 发布:ecs 阿里云 编辑:程序博客网 时间:2024/06/06 07:14

                                                                                                            HBase相关论文阅读

   从网上下载三篇关于HBase的论文,下面是阅读总结。

  第一篇是关于HBase的大对象存储。参考南京大学硕士论文,HBase大对象存储方案设计与实现,作者康毅。 

  这篇文章是对于HBase数据插入性能的提高,同时兼顾读取性能和存储的管理复杂度。

  1、海量数据集的特点:

  1)超过80%的数据是非结构化的;2)数据量不断增加;3)数据会被长时间的存储,热点数据会被随机的访问。

   2、为何选用HBase

   1)HBase在实时数据分析处理方面,应用比较多;2)HBase的列式存储方式在大对象存储方面具有优势。

   3、大对象是什么?

    大对象是指:二进制大对象、字符大对象(PDF、word文档、图片等) 

   4、HBase必备的基础知识点:

        HMaster、HRegionServer、HRegion、Region、HStore、StoreFile、HFile、HBase RPC、Zookeeper、HLog、WAL、compact、flush。这些名词是什么?之间的关系是什么?

        HMaster是针对Table和Region的管理。

        HRegionServer是响应用户的I/O请求,向HDFS读写数据,管理一系列的HRegion,一个HRegion对应一个Table的Region。HRegion对应多个HStore,一个HStore包含MemStore(内存存储区域)和StoreFile(存储在HDFS上的文件)。这里的数据流程是:数据会先写到MemStore,当MemStore满时,会flush入StoreFile,即存储到HDFS上。StoreFile的底层实现是HFile。StoreFile的文件数量达到一定阈值后,会触发Compact操作,将多个StoreFile合并为一个StoreFile,合并过程会进行数据的合并和删除。因为合并的操作使得单个的StoreFile大小达到一定阈值后会再次被分割执行split操作。在同时会把单个的Region拆分为两个Region,减少单个的Region的负载分到两个Region上。


另外一个比较重要的概念是HLog。这是数据冗余备份的一种方式,是为了避免HRegionServer意外丢失后数据的丢失,在这种方式的作用下,即使HRegionServer意外丢失,数据仍然能够根据HLog中的记录恢复数据。

   列族的存在的意义(为什么要使用列族,只要有列不就可以了吗?这也是我一直思考的答案,本文给出了答案)存放在同一列族的数据是存放在同一个文件中的,具有相同的I/O特性,有效的降低磁盘I/O的开销。其压缩比得到提高,极大节省存储空间,体现了面向了列的特点。

   5、HBase Compaction机制

        简单的概括一下,这是数据的合并的过程,由多个StoreFile合并为一个StoreFile。该过程会在后续文章连载出来。

   6、HBase 协处理器

      这是为了方便对HBase数据进行计数、求和、排序,建立"二级索引"。

   7、HBase大对象存储解决方案

     三种解决方案及优缺点,如下:

     1)HBase自身大对象存储方式。

       优点: a)实现简单,数据管理方面 b)数据管理方便 c)保证一致性

       缺点: a)无法回避split、Compact  b)延时不稳定

       

     2)基于HDFS的HBase自身的大对象存储方式

        这种方案是只将少量的结构化数据和大对象的索引存放在HBase中,将大对象排除在HBase写流程之外,存放在HDFS上。这样做的目的是为了降低split、compaction触发程度。

       方案A: 直接将大对象以文件的形式的方式存储到HDFS上,HBase中存储每个大对象文件地址即可。

       方案B:将多条大对象数据存储在一个Squence File

       两种方案的优缺点总结:

        优点: a)实现较为简单 b)回避大对象的split/compaction机制 

        缺点: a)需要编写额外的代码,主要是为了写入HDFS文件链接  b)大对象管理较为困难。无法管理超时的文件,影响集群的性能。

     3)基于列族定制的HBase自身方案。

         这里是指定制Compaction机制 。通过参数hbase.hcompaction.hstore.min参数的设置来设定触发Compaction机制的文件的最小个数,这种方案是将该参数设置调大。

       方案的优缺点:

        优点:a)实现方便  b)数据管理方便 c)回避了Minor Compaction对写入性能的影响。

        缺点:a)未解决split带来的影响 b) 大量的大对象StoreFile影响读性能

   8、HBase大对象存储的分析与设计

       项目的整体的规划为三个部分:1.数据结构的设计2.定制Flush机制3.定制Compaction机制

        设计的目标是:

       1)避免过多的小文件 2)尽量可能对于写性能的影响,减少对于Split、Compaction的触发,保证稳定的低延时和高吞吐 3)较低延时和高并发 4)目标的一致性 5)透明性

  

0 0
原创粉丝点击