part I:split policy
if u have used some index tools like lucene,there are some factors to control how many docs to merge some segs to a large one,and whether to freeze some large enough seg files to a fix size ...yes ,thess cases are all similar to hbase's merge regions capacities(called online merge?) like below described.
in opposite,hbase's has a 'region split policy' but lucene.that is if some regions are too large so decrease perf ,or some other cases like remerging a big region consume a lot time.so it is sensible!
in 0.94.2,there are two policies for split,as desciribed below:
policy | trigger | split point | feature/use case |
ConstantSizeRegionSplitPolicy |
-all stores belong this region are splittable; -one of the store file size is bigger than max.hstorefile.size |
use the largetst store's split point |
-a constant size to check threshold -suitable for predictable data increasement with pre-split |
IncreasingToUpperBoundRegionSplitPolicy (default) |
-all stores belong this region are splittable(there is a bug in this verion,[1]) -one store file size is bigger than A, A=min(max.stofile.size,C^2 * flush.size), C=number of regions with same table on this rs .so on this rs,all the regions share the same value A when computing split-size-to-check |
same as above |
-class inherit above policy,but use silent plicy -a dynamic handle case,fit for unpreditable data size at first period. but from the trigger on left side,we know that if regions count grow to 9 then this policy will BACK to the above policy! |
split point comutation
-exclude the meta table(i have blogged in previous topics)
-retrive the largest store file
-get the middle block of the file
-create a 'rowkey'' with the middle key (this is the target ) TODO
part II:split principle
see [2] or look into HBaseAdmin#split(),below is a bird view:
part III: merge regions
as of this version,there is only a offline merge capacity,that is,util.Merge.if u want to use online merge,see 'online merge' which will be fixed in 0.95 or 0.98.
part IV:conclusions
in general,i prefer to use constant-size policy,a simple,controllable solution ,if u preslit the table while creating.
but u must specify the property with value 'ConstantSizeRegionSplitPolicy' :
hbase.regionserver.region.split.policy
ref:
[1] IncreasingToUpperBoundRegionSplitPolicy.shouldSplit() should check all the stores before returning.
hbase -how many regions are fit for a table when prespiting or keeping running
[2] Apache HBase Region Splitting and Merging (detailed split principle)
相关推荐
### HBase学习利器:HBase实战 #### 一、HBase简介与背景 HBase是Apache Hadoop生态系统中的一个分布式、可扩展的列族数据库,它提供了类似Bigtable的能力,能够在大规模数据集上进行随机读写操作。HBase是基于...
HBase 数据集:ORDER_INFO
Maven坐标:org.apache.hbase:hbase-common:1.4.3; 标签:apache、common、hbase、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...
根据提供的文件信息,本文将详细介绍HBase的Shell操作及其应用场景,包括如何创建表、插入数据、查询数据等关键操作。 ### HBase Shell简介 HBase Shell是HBase提供的一种交互式命令行工具,用于执行HBase操作。它...
Maven坐标:org.apache.hbase:hbase-annotations:1.1.2; 标签:apache、annotations、hbase、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。...
内容概要:本文档是一份详尽的HBase学习教程,涵盖从安装配置、基础操作到实战项目的全方位内容。首先介绍了HBase的基本概念和特点,接着详细讲解了HBase的安装与配置步骤,包括环境准备、下载与解压、配置文件修改...
HBase在不同版本(1.x, 2.x, 3.0)中针对不同类型的硬件(以IO为例,HDD/SATA-SSD/PCIe-SSD/Cloud)和场景(single/batch, get/scan)做了(即将做)各种不同的优化,这些优化都有哪些?如何针对自己的生产业务和...
Part V: Apache HBase Java API Chapter 16: The HBaseAdmin Class Chapter 17: Using the Get Class Chapter 18: Using the HTable Class Part VI: Administration Chapter 19: Using the HBase Shell ...
hbase官网下载地址(官网下载太慢): https://downloads.apache.org/hbase/ 国内镜像hbase-2.4.16: https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.16/hbase-2.4.16-bin.tar.gz
hbase-exporterHBase Prometheus导出器收集指标并中继JMX指标以供Prometheus使用由于JMX中一些重要的指标缺失或为空,因此我们另外分析了HBase主界面,例如“过渡中的过时区域” 解析“ hbase hbck”命令的输出以...
HBase基本操作 增删改查 java代码 要使用须导入对应的jar包
该项目是采用Java编写的HydraQL源码,一款旨在简化HBase操作体验的SQL查询器。项目包含1408个文件,涵盖804个Ruby脚本、530个Java源文件、30个XML配置文件、6个Shell脚本、6个属性文件以及少量其他类型文件。HydraQL...
在`hbase-site.xml`中,需要配置HBase的根目录(`hbase.rootdir`),分布模式(`hbase.cluster.distributed`),Master服务器的端口(`hbase.master.port`),ZooKeeper的群集地址(`hbase.zookeeper.quorum`)以及...
在HBase这个分布式列式数据库中,分页查询是一个重要的功能,尤其对于处理大量数据时,它能够有效地提高性能并优化用户体验。HBase本身并不直接支持像SQL那样的传统分页,但通过一些策略和工具,我们可以实现类似的...
在IT行业中,尤其是在大数据存储和处理领域,HBase和Phoenix是非常重要的组件。HBase是一个分布式的、面向列的NoSQL数据库,它构建于Hadoop之上,适用于大规模数据存储。而Phoenix是一个高性能的关系型SQL层,它允许...
搭建pinpoint需要的hbase初始化脚本hbase-create.hbase
HBase Manager提供了一个简单的GU界面来与HBase数据库进行交互。 使用HBM,我们可以执行所有基本操作,例如表创建/更改/删除/截断和数据修改,例如插入/删除/更新。 可以使用过滤器和自定义扫描范围完全自定义扫描...
Clojure-Hbase-Schemas Clojure-HBase-Schemas是一个用于从Clojure访问HBase的简单库。 该库的灵感来自David Santiago的并直接从他的库中取消了对HTable管理功能的支持。 发行版保留在clojars中。 最新版本是: ...
### HBase权威指南知识点概述 #### 一、引言与背景 - **大数据时代的来临**:随着互联网技术的发展,人类社会产生了前所未为的数据量。这些数据不仅数量巨大,而且种类繁多,传统的数据库系统难以应对这样的挑战。 ...