`

hbase compact和split策略

阅读更多

---compact split笔记

 

compact策略:

在启动region之后,memflush之后,用户compact调用compact

使用策略类needsCompaction方法,hfile数量大于hbase.hstore.compaction.min 和 hbase.hstore.compactionThreshold的最大值数(默认值为3)

 

major compact触发:(hfile由mem flush生成)

HStore检查是否进行compact时候,现在now - 上次major时间大于hbase.hregion.majorcompaction下次时间间隔  =》 hfile个数大于1 || 只有一个hfile(最早的ts>ttl)整个文件过期 => 进行marjor compact

hbase shell和admin进行major_compact

compact file <= sum(hfile) * hbase.hstore.compaction.ratio 将small compact转为major compact

最小的tts到时间了,进行major compact

 

 

compact策略:(一次compact不会compact提供所有的hfile,会选择最好的一组)

ExploringCompactionPolicy

一、选择符合要求的一组hfile进行compact

1.hfile数>=minFiles

2.hfile数<=maxFiles

3.sum(hfile)大小<=hbase.hstore.compaction.max

4.一个hfile大小<sum(hfile)-hfile(不让一个hfile过大)

二、选择最优解(最优的一组hfile)

选择sum(hfile)大小最小的作为第一个组合,选择能合并更多的hfile,并且sum(hfile)大小更小的

 

 split触发:

1.flush之前会检测区域中HStoreFile数目是否超过hbase.hstore.blockingStoreFiles,如果超过且没有等待超时会调用CompactSplitThread.requestSplit(HRegion) 

2.flush之后会调用HRegion.checkSplit()检测是否需要split,如果需要则调用CompactSplitThread.requestSplit(HRegion)

3.compact之后会调用CompactSplitThread.requestSplit(HRegion)

4.hbaseadmin split table or region

 

split策略:

IncreasingToUpperBoundRegionSplitPolicy

(init)initialSize = hbase.increasing.policy.initial.size(预先设置初始值大小) 或hbase.hregion.memstore.flush.size (memflush大小)

获取this.region所在表的所有region数 getCountOfCommonTableRegions 为regioncount

当regioncount在0到100之间,取配置hbase.hregion.max.filesize(默认10G)或initialSize*(regioncount^3)的最小值  否则取配置hbase.hregion.max.filesize(默认10G)

如,只有一个region,128*1^3=128M

        之后:                 128*2^3=1024M

                                    128*3^3=3456M

                                    128*4^3=8192M

                                    128*5^3=16000M(15G) => 10G 当有5个region就可以用配了

 

结论:

compact

无法避免,

增大hbase.hstore.compaction.min 和 hbase.hstore.compactionThreshold可以减少compact频率,但是延迟compact时间,反之亦然

通过减少生成hfile数量减少compact,

通过设置较大的hbase.hregion.majorcompaction可以减少marjor compact频率

可以定时人为进行mar compact

split

可以避免,split可以只设置hbase.hregion.max.filesize很大就停止了region split操作

分享到:
评论

相关推荐

    hbase基本概念和hbase shell常用命令用法

    在HBase的运维中,理解其内部工作原理,如RegionServer、Zookeeper的角色,以及性能调优策略,如合理设置Region大小、监控系统状态等,都是至关重要的。同时,HBase与其他大数据组件(如Hadoop MapReduce、Hive、...

    某大数据公司内部Hbase性能测试详细设计文档及用例

    本文档旨在详细介绍HBase性能测试的设计文档和实践经验,涵盖了HBase性能测试需要注意的一些参数设置和测试用例。下面是从该文档中提炼的相关知识点: 1.1 Pre-Creating Regions 在HBase中,默认情况下,在创建表...

    hbase shell命令详解

    HBase Shell是HBase提供的一个交互式命令行工具,用于管理和操作HBase数据库。在这里,我们将深入探讨HBase Shell的各种命令。 1. **创建表(create)**: 使用`create '表名', '列族'`命令来创建表,如`create '...

    HBase概述——HBase的存储模型.pdf

    《HBase概述——HBase的存储...综上所述,HBase的存储模型通过LSM树和相关机制,实现了高写入性能和数据一致性,但也需要权衡读取效率和资源管理。理解并优化这些机制,对于提升HBase在大数据环境中的表现至关重要。

    大数据开发之案例实践Hbase的设计及企业优化视频教程(视频+讲义+笔记+配置+代码+练习)

    │ Hbase性能优化-flush、compact、split │ Hbase性能优化-配置snappy压缩 │ Hbase中索引的介绍 │ PHoenix的编译及安装部署 │ PHoenix与Hbase表的关联使用 ├─03_笔记 │ [案例:Hbase的设计及企业优化].txt ├...

    HBase应用最佳实践详解.pptx

    本实践详解将深入探讨HBase的安装、常用命令、优化策略以及典型应用场景,以帮助读者更好地理解和运用这一强大的数据存储解决方案。 一、HBase安装 HBase的安装涉及到多个步骤,首先需要安装Hadoop,确保HBase与...

    Hbase性能测试详细设计文档及用例.pdf

    其次, Compact与Split机制是HBase内部数据管理的核心。数据更新首先写入WAL日志和内存的MemStore,当MemStore达到阈值时,会触发flush操作,生成StoreFile。当StoreFile数量过多或大小超过阈值,系统会进行Major ...

    Hbase shell常用命令.docx

    - **tools**:提供了一些实用工具命令,如`compact`(压缩)、`flush`(刷新缓存)和`split`(分裂region)等。 - **replication**:用于复制和管理HBase的复制流,包括`add_peer`、`remove_peer`等。 了解这些基本...

    HBase应用最佳实践详解.pdf

    * Region拆分和合并:预建分区可以避免自动split,提高HBase的响应速度 * Region均衡:避免出现Region热点现象,按照table级别进行balance * 尽量只用1-2个列族:减少列族的数量可以提高HBase的性能 * 定期建表:...

    HBase大数据技术原理与实践.pptx

    当MemStore达到一定大小时,数据会被Flush到StoreFile,并在必要时进行Compact和Split操作。HLog作为WAL,保证数据在写入HBase前先写入日志,以防数据丢失。 HFile是HBase的存储格式,有V1、V2和V3三个版本,V2引入...

    hbase性能调优

    手动调用`split`和`major_compact`命令可以更精确地控制拆分和压缩时机,降低对系统的影响。 4. **预拆分region** 预拆分策略在创建新表时就分配多个region,避免单个region过大。在创建表时,可以指定预拆分行键...

    Hadoop之Hbase从入门到精通.docx

    大Region,则不太适合经常split和compaction,因为做一次compact和split会产生较长时间的停顿,对应用的读写性能冲击非常大。 HBase性能调优是一个非常复杂的过程,需要根据实际应用场景进行调整。通过调整...

    云数据库HBase企业级安全解析.pdf

    - ADMIN(‘A’):管理员权限,允许对表进行compact(合并)、split(分割)、balance(均衡分布)等操作。 HBase ACL使用举例说明了如何通过JavaAPI和shell命令行方式管理权限,例如,可以使用shell命令行方式...

    hadoop、habse、yarn、MapReduce调优等总结的集合调优.docx

    9. **flush、compact、split机制**:合理设置Memstore的阈值,控制数据刷新、合并和分割的操作,确保HBase的高效运行。 YARN调优涉及到的任务调度、资源分配等,如调整Container的大小、内存分配策略等,目的是最大...

    星环大数据平台_Hyperbase基本用法.pdf

    compact命令和major_compact命令分别用于执行局部压缩和全局压缩操作,优化存储空间的利用。 6. 导出表属性到本地文件:使用describeInJson命令可以将当前表的属性导出为本地的JSON格式文件,方便进行进一步的分析...

    大数据 76 道面试题及答案.docx

    3. Region的split和集群管理: Region的split是指将一个region分成多个region的过程。集群管理是通过ZooKeeper+hmaster+hregionserver来实现的。 4. 去掉Reduce阶段: 在某些场景下,去掉Reduce阶段可以提高计算...

Global site tag (gtag.js) - Google Analytics