`

hbase split part:regions split policy

 
阅读更多

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) 

 

 
 
 
 
 
 
 
  • 大小: 109.5 KB
0
0
分享到:
评论

相关推荐

    HBase学习利器:HBase实战

    HBase开发实战,HBase学习利器:HBase实战

    HBase 数据集:ORDER_INFO

    HBase 数据集:ORDER_INFO

    hbase-common-1.4.3-API文档-中文版.zip

    Maven坐标:org.apache.hbase:hbase-common:1.4.3; 标签:apache、common、hbase、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...

    HBase的使用:包括HBase的解压、配置文件、服务的启动、查看HBabe页面、HBabe Shell操作等等

    HBase的使用:包括HBase的解压、HBase的配置文件、HBase服务的启动、查看HBabe页面、HBabe Shell操作:基本操作(创建表、插入数据到表、扫描查看表数据、查看表结构、更新指定字段的数据、查看“指定行”或“指定列...

    hbase-annotations-1.1.2-API文档-中文版.zip

    Maven坐标:org.apache.hbase:hbase-annotations:1.1.2; 标签:apache、annotations、hbase、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。...

    hbase-exporter:HBase Prometheus导出器

    hbase-exporterHBase Prometheus导出器收集指标并中继JMX指标以供Prometheus使用由于JMX中一些重要的指标缺失或为空,因此我们另外分析了HBase主界面,例如“过渡中的过时区域” 解析“ hbase hbck”命令的输出以...

    HBase in Practise: 性能、监控和问题排查

    HBase在不同版本(1.x, 2.x, 3.0)中针对不同类型的硬件(以IO为例,HDD/SATA-SSD/PCIe-SSD/Cloud)和场景(single/batch, get/scan)做了(即将做)各种不同的优化,这些优化都有哪些?如何针对自己的生产业务和...

    Apache HBase Primer

    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 vs Cassandra: why we moved

    NULL 博文链接:https://13146489.iteye.com/blog/1123018

    HBase基本操作 Java代码

    HBase基本操作 增删改查 java代码 要使用须导入对应的jar包

    hbase-page:hbase 分页

    hbase-page hbase 分页

    HBase Data Browser:HBase数据库的简单GUI界面-开源

    HBase Manager提供了一个简单的GU界面来与HBase数据库进行交互。 使用HBM,我们可以执行所有基本操作,例如表创建/更改/删除/截断和数据修改,例如插入/删除/更新。 可以使用过滤器和自定义扫描范围完全自定义扫描...

    clojure-hbase-schemas:基于架构的HBase交互

    Clojure-Hbase-Schemas Clojure-HBase-Schemas是一个用于从Clojure访问HBase的简单库。 该库的灵感来自David Santiago的并直接从他的库中取消了对HTable管理功能的支持。 发行版保留在clojars中。 最新版本是: ...

    hbase-2.2.6:hbase社区版源码2.2.6

    hbase-2.2.6:hbase社区版源码2.2.6

    hbase-rdd:Spark RDD从HBase读取,写入和删除

    hbase-rdd:Spark RDD从HBase读取,写入和删除

    hbase-docker:Dockerfile具有用于HBase的映像

    HBase的码头工人 Dockerfile具有用于HBase的映像 为什么 ? 因为有时,您需要一些独立的HBase才能用于某些docker-compose。 但是,为什么要打包分布式版本? 因为有时候,您需要使用ConfigMap将HBase的分布式版本...

    HBase入门:命名空间、建表、增删改查

    进入HBase数据库 hbase shell 注意HBase Shell 中的删除键没用,要用【Ctrl+Backspace】,每个命令之后不需要分号(;)结束。 HBase帮助命令: hbase> help 'create' 命名空间 列出所有命名空间 hbase> list_...

    hbase-cdh5:Hbase-cloudera Docker

    CDH版本:cdh5.1 java:jdk7u67(64位) HBase模式:伪分布式裸露端口动物园管理员服务器:2181 hbase-master:65000 hbase-master Web UI:65010 hbase-regionserver:65020 hbase-regionserver Web UI:65030如何...

    hbase创建二级索引

    public class IndexBuilder3 extends Configured{ public static class MapperIndex extends TableMapper,Put>{ private String tableName; private String columnFamily; private String[] qualifiers;...

    Hbase-Cleaner:Hbase-Cleaner

    Hbase-Cleaner 按期间清理 Hbase 中的行 跑步: node cleaner.js 配置: { "hbase_host": "u.hbase.host", "hbase_port": "8080", "params": { "startTime": "1388534400000", "endTime": "1498535400000", ...

Global site tag (gtag.js) - Google Analytics