`

HBase region平均split的实现设计

 
阅读更多

原理相当简单。就是根据region记录的1/2进行切分

 

过程: 指定要split的目的region, 获得region中的行数,算出中间值,根据regionName和这个中间值做split-point, 利用HBaseAdmin的split接口触发最终的split.

 

整个过程可能需要依赖几个东西:

1.region中有多少记录? 这个我不知道是否有更直接的方法获得。至少一个直观的方法就是可以利用endpoint对表做快速统计(也是我们目前的实现), 从目标region得到startRow和stopRow, 传入scan, 得到目标数据量。

2. 1/2点(中间点)对应的rowkey怎么获得? 中间点简单, region总记录数/2就是。对应的rowkey的话, 可以通过加了SkipFilter/FirstKeyOnlyFilter/PageFilter(1) 3个过滤器的Scan来获得Result, Result.getRow便是。 当然,这里的SkipFilter并不是HBase原生的那个,(原生的那个我打心底觉得它不应该叫SkipFilter), 自己实现一个,hbase端跳过制定数量的记录便行。

 

 

目前看起来切分的效果符合预计。

0
3
分享到:
评论

相关推荐

    HBASERegion数量增多问题描述及解决方案.docx

    【HBASERegion数量增多问题描述及解决方案】 在HBase分布式数据库中,Region是表数据的基本存储单元,它将表的数据按照ROWKEY的范围进行分割。随着数据的增长,一个Region会分裂成两个,以此来确保数据的均衡分布。...

    Hbase的region合并与拆分

    HBase的region split策略一共有以下几种: 1、ConstantSizeRegionSplitPolicy 0.94版本前默认切分策略 当region大小大于某个阈值(hbase.hregion.max.filesize=10G)之后就会触发切分,一个region等分为2个region。 ...

    HBaseRegion自动切分的所有细节都在这里了

    6. **用户配置**:用户可以在表级别或列族级别自定义切分策略,通过`hbase.table.region.split.policy`和`hbase.default.region.replication.policy`进行配置。 理解这些细节有助于更好地管理HBase集群,确保数据...

    hbase的Rowkey设计方案.pdf

    预分区是HBase表设计中的一个重要策略,它能有效解决因region split带来的资源消耗问题。在表创建时,用户可以根据一定的规则预先划分region,避免在数据快速增长时频繁进行split操作。这不仅可以提高HBase的性能,...

    Hbase 分区操作

    当我们谈论"Hbase分区merge和split操作"时,我们指的是管理员或开发人员对Region进行的手动调整,以优化集群性能。 **1. HBase Region Split** Region split是将一个大型Region拆分为两个较小的Region的过程,通常...

    Hbase 组件 、架构

    HBase中的Region分割(Region Split)是一个关键特性,它允许HBase在表数据量增大时,自动将一个Region分割成两个,从而保证每个Region的大小都保持在一个合理的范围。这是实现HBase高扩展性和高性能的关键机制之一...

    hbase数据可视化系统

    使用HBase的Compaction和Split机制,保持Region的平衡;并考虑使用二级索引提高查询效率。 六、总结 通过SpringBoot搭建的HBase可视化系统,使得非技术人员也能便捷地管理和操作HBase,降低了使用门槛,提高了工作...

    HBase源代码 hbase-0.98.23

    当一个Region的大小达到预设阈值时,`org.apache.hadoop.hbase.regionserver.HRegion`会触发分裂过程,这涉及到`org.apache.hadoop.hbase.regionserver.SplitTransaction`类的使用,确保分裂过程中数据的一致性。...

    hbase1.0.3_part2

    HBase通过Region Split来解决这个问题,将大的Region分割成两个较小的部分,确保数据分布均匀。Split过程是透明的,对上层应用无感知。 2. **表的预分区**:为了优化数据写入,开发者可以在创建表时预先定义Region...

    hbase regions数据切割.docx

    在HBase这个分布式列式数据库中,Region是其核心的数据存储和管理单元,它负责存储表中的行数据。随着数据量的增长,一个Region可能会变得过大,导致读写性能下降。这时,就需要对Region进行数据切割(Split),以...

    hbase-0.98.1源码包

    5. 并发控制:学习RegionSplitPolicy、RegionSplitter等类,理解HBase如何处理并发请求和Region分裂。 6. 客户端API:研究HBase客户端如何通过Table、Get、Put、Scan等对象进行数据操作。 通过阅读源码,开发者可以...

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

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

    HBase性能深度分析

    当region文件大小达到由“hbase.hregion.max.filesize”参数决定的上限(默认256MB),触发region split操作,原region一分为二,以提高数据读写效率与分布均衡性。 在此过程中,“.splits”目录的引入,有效避免了...

    Hbase实验报告.pdf

    **HBase实验报告** 在本实验中,我们主要聚焦于HBase,这是一个基于谷歌Bigtable设计的开源...在后续的学习和实践中,应深入研究HBase的其他高级特性,如Region Split、Compaction等,以便更好地应用到实际项目中。

    hbase java api 访问 查询、分页

    在实际应用中,可能会涉及到更复杂的查询场景,如使用Filter进行数据筛选,或者利用HBase的Region Split特性优化存储和查询性能。对于过滤器,可以创建各种类型的Filter对象,如`PrefixFilter`、`RowFilter`等,并将...

    Hbase1.3.1源码

    HBase是Apache软件基金会的一个开源项目,它是基于Google的Bigtable设计思想开发的,用于构建在分布式文件系统(如Hadoop HDFS)之上的大规模、高性能、列式存储的数据库。HBase 1.3.1是其稳定版本之一,为大数据...

    大数据HBASE考题材料

    - RegionSplit后的管理:当一个Region的大小超过设定的阈值时,会将其分割成两个新的Region。 - 故障转移:当某个RegionServer出现故障时,HMaster会将该RegionServer上的Region重新分配到其他健康的RegionServer...

    hbase基础知识介绍

    当Region的增长达到一定阈值时,会自动进行Split,从而保持集群的负载均衡。 ### HBase的数据访问 HBase提供了原生的Java Client/API,包括Get、Scan、Put、Delete等类,以及HTable类用于数据的读写操作,HBase...

    一张图看懂HBase

    HBase是一个开源的、面向列的分布式数据库系统,基于Google的Bigtable论文设计实现,并且是Hadoop生态系统中的关键组件之一。它提供了高可靠性、高性能、可伸缩性及支持实时读写的特性,非常适合于存储海量的非结构...

Global site tag (gtag.js) - Google Analytics