`
flyingdutchman
  • 浏览: 358948 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《Hbase权威指南》深入学习hbase架构(4):文件压缩合并Compaction

阅读更多
    HRegoin Server上的storefile文件是被后台线程监控的,以确保这些文件保持在可控状态。磁盘上的storefile的数量会随着越来越多的memstore被刷新而变等于来越多——每次刷新都会生成一个storefile文件。当storefile数量满足一定条件时(可以通过配置参数类调整),会触发文件合并操作——minor compaction,将多个比较小的storefile合并成一个大的storefile文件,直到合并的文件大到超过单个文件配置允许的最大值时会触发一次region的自动分割,即region split操作,将一个region平分成2个,具体过程以后再说,这里不再赘述。

    合并操作有两种类型:轻量级的的minor compaction和重量级的major compaction
    Minor compaction主要负责将符合条件的最早生成的几个storefile合并生成一个大的storefile文件,它不会删除被标记为"删除"的数据和以过期的数据,并且执行过一次minor合并操作后还会有多个storefile文件。
    Minor compaction一次合并的文件数量由hbase.hstore.compaction.min(执行minor compaction的最少文件数)配置参数决定,该参数值的默认配置是3。该参数配置太大则会延迟触发minor合并操作,并且一次合并的文件数太多会占用更多的资源和执行更长的时间,这会带来不好的用户体验——毕竟hbase是要提供实时响应的。
    在一次minor操作一次最多允许10个文件,通过hbase.hstore.compaction.max参数设置,任何一个大于hbase.hstore.compaction.min.size值的storefile文件将自动成为将要被合并的storefile,hbase.hstore.compaction.min.size属性值与被用来设置将memstore执行flush操作的配置属性hbase.hregion.memstore.flush.size的值(默认为128MB)相同。
    Minor compaction操作有一个时间轴而的概念,那就是每次合并操作都是按storefile的生成时间有旧到新来合并文件的。如此下图所示:


    对比Minor compactionMajor compaction操作会把所有的storefile合并成一个单一的storefile文件,在文件合并期间系统会删除标记为"删除"标记的数据和过期失效的数据,同时会block所有客户端对该操作所属的region的请求直到合并完毕,最后删除已合并的storefile文件。
   
    到底如何决定触发那种类型的major类型的compaction操作呢?这是在compaction检查执行时被自动决定的。compaction检查可以通过以下三种条件触发:
    1、每当memstore被刷新到磁盘后触发;
    2、通过hbase shell命令行调用或API调用触发;
    3、通过一个叫CompacionChecker的后台线程触发。
    每一个region都运行着一个这样的后台线程。CompacionChecker会定期的执行compation检查,时间间隔可以通过hbase.server.thread.wakefrequency来配置。
    可以通过hbase shell命令行调用或majorCompact()API调用,从而强迫major合并操作执行,否则服务器会首先基于hbase.hregion.majorcompaction(24小时)的配置来检查是否要执行major合并操作。  
    由于Major compaction在执行期间会阻塞所有客户端的请求直到合并完毕,因此最好在服务器空闲时通过手工或脚本的方式调用执行,以提高客户体验。

    以下是两种compaction的区别: 
    
  


   
  • 大小: 33.7 KB
  • 大小: 28.2 KB
分享到:
评论

相关推荐

    hbase权威指南源码

    《HBase权威指南》是一本深入探讨Apache HBase这一分布式列式数据库的著作,源码则是作者为了辅助读者理解书中理论知识而提供的实践材料。HBase是构建在Hadoop文件系统(HDFS)之上的开源数据库,专为处理大规模数据...

    HBase权威指南中文版

    《HBase权威指南中文版》是一本深入探讨大数据领域中分布式数据库HBase的专著。这本书旨在帮助读者理解和掌握如何有效地使用HBase处理大规模数据存储和检索问题。HBase是建立在Apache Hadoop之上,一个面向列的、...

    《HBase权威指南》示例代码

    《HBase权威指南》是大数据领域的一本经典著作,它深入浅出地介绍了HBase这一分布式列存储系统。HBase是构建在Hadoop生态系统之上的,用于处理大规模数据的NoSQL数据库,尤其适合实时读写操作。这本书的示例代码提供...

    Hbase权威指南 随书源代码 源码包 绝对完整版

    《HBase权威指南》是Hadoop生态中关于分布式数据库HBase的重要参考书籍,随书附带的源代码是学习和理解HBase实现机制的关键资源。这个源码包名为"hbase-book-master",意味着它是该书的主代码仓库,包含完整的示例和...

    Hbase权威指南源码

    《HBase权威指南》是一本深入探讨分布式列式数据库HBase的专业书籍,其源码提供了对HBase工作原理和实现细节的深入理解。HBase,作为Apache Hadoop生态系统中的一个关键组件,是为大规模数据存储设计的高性能、...

    Hbase权威指南(中文版)快捷PDF版

    《HBase权威指南》是一本全面介绍分布式列式数据库HBase的专业书籍,中文版的发布为国内用户提供了更便捷的学习途径。HBase是基于Apache Hadoop的开源项目,旨在为大规模数据集提供低延迟、高吞吐量的随机读写能力。...

    hbase权威指南 源代码 英文

    《HBase 权威指南》是一本深度解析 Apache HBase 的技术专著,它为读者提供了全面而深入的HBase知识。HBase是基于Google Bigtable设计灵感的开源分布式数据库,属于Apache Hadoop生态系统的一部分,专门针对大规模...

    HBase权威指南

    《HBase权威指南》是一本深入探讨分布式列式数据库HBase的专业书籍,旨在为读者提供全面、详尽的HBase知识。HBase是构建在Apache Hadoop文件系统(HDFS)之上的开源数据库,主要用于存储大规模结构化数据,是大数据...

    HBaseHBase权威指南中文版.pdf

    《HBase权威指南》中文版是关于分布式列式...总的来说,《HBase权威指南》中文版为读者提供了全面深入理解HBase的途径,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅,提升你在大数据处理领域的专业技能。

    HBASE编程指南word版

    通过以上概述,可以看出《HBase权威指南》不仅全面覆盖了HBase的核心技术和实践应用,还深入探讨了HBase与Hadoop生态系统的紧密结合,为读者提供了丰富的理论基础和技术指导。无论是初学者还是资深技术人员,都能...

    HBase应用架构PDF版本

    《HBase应用架构》这本书由吉恩-马克·斯帕加里撰写,中文版由陈敏敏、夏锐和陈其生翻译,深入探讨了分布式大数据存储系统HBase的架构和应用。HBase是建立在Apache Hadoop之上的一款非关系型数据库,特别适合处理...

    大数据书籍-Hbase架构设计(高清)

    《大数据书籍-Hbase架构设计》是一本专注于大数据领域中分布式数据库Hbase的深度解析书籍,适合对...书中的《HBase应用架构.pdf》很可能是详细的Hbase应用架构指南,涵盖了以上提到的多个主题,值得读者深入研究。

    Hbase学习总结.rar

    5. **Compaction**:定期进行合并操作,减少文件数量,提高读取性能。 ### 五、HBase应用场景 1. **日志分析**:实时处理大量日志数据,快速检索关键信息。 2. **实时监控**:实时监控系统状态,如服务器性能指标...

    hbase1.0.3_part2

    3. **HBase的Compaction**:Compaction是HBase中用于合并HFile的过程,目的是减少Region内的文件数量,提高读取效率。有两种类型的Compaction:Minor和Major,前者只合并同一Region的小文件,后者会合并所有文件,...

    hbase 学习 hbase原理 hbase资料

    - **Compaction**:定期合并Region中的文件,减少数据文件的数量,优化读写性能。 5. **HBase的应用场景** - 实时查询:HBase适合实时读取大量数据,如日志分析、监控系统等。 - 大数据存储:对于PB级别的数据,...

    hbase-2.4.17-bin 安装包

    3. Compaction:定期进行Compaction清理旧版本和合并文件,减少数据冗余,提高读取效率。 4. Bloom Filter:使用Bloom Filter可以减少不必要的磁盘I/O,提高查询性能。 5. Indexing:虽然HBase本身不支持索引,但...

    HBase中Compaction及读缓存机制研究_王运萍

    将HBase作为研究对象,分析其存储架构,针对HBase存储机制进行深入研究

Global site tag (gtag.js) - Google Analytics