什么是Hbase 预分区?

在建表的时候,可以给每个region划分不同的rowkey范围.
之后在插入数据的时候,数据就会依据rowkey的不同进入到不同的region中.当然,每个region在hdfs上也存在不同的文件中.

为什么要预分区?

因为系统是到达一定大小自动拆分region,未必满足实际的需求.

如何预分区?

每一个region都维护着startRow与endRowKey,如果加入的数据符合某个region维护的rowKey范围,则该数据交给这个region维护。那么依照这个原则,我们可以将数据所要投放的分区提前大致的规划好,以提高HBase性能。

hbase(main):001:0> create 'csdn:test','f1',SPLITS=>['1000','2000','3000','4000']=> Hbase::Table - csdn:test
hbase(main):002:0> describe 'csdn:test'
Table csdn:test is ENABLED
csdn:test
COLUMN FAMILIES DESCRIPTION
{NAME => 'f1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER'
, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}

可以从webui查看

http://192.168.10.102:16010/


之后我们插入数据,就会依据rowkey的不同,进入到不同的分区中间

hbase(main):003:0> put 'csdn:test','0001','f1:name','zhangsan'hbase(main):004:0> put 'csdn:test','1001','f1:name','lisi'hbase(main):005:0> put 'csdn:test','2001','f1:name','liming'hbase(main):006:0> put 'csdn:test','3001','f1:name','wangdi'hbase(main):007:0> put 'csdn:test','4001','f1:name','jingwen'hbase(main):008:0> scan 'csdn:test'
ROW                                     COLUMN+CELL0001                                   column=f1:name, timestamp=1606705920401, value=zhangsan1001                                   column=f1:name, timestamp=1606705932708, value=lisi2001                                   column=f1:name, timestamp=1606705943409, value=liming3001                                   column=f1:name, timestamp=1606705955181, value=wangdi4001                                   column=f1:name, timestamp=1606705970585, value=jingwenhbase(main):009:0> flush 'csdn:test'

在hdfs上,也会存储到不同的位置

Hbase预分区入门相关推荐

  1. hbase 预分区设计

    文章目录 hbase 预分区设计 一.手动切割分区 二.自动切割分区 三.预先切割分区 四.三种预分区方式 1.范围预分区 2.16进制预分区 3.按文件中的分区 hbase 预分区设计 hbase ...

  2. storm自定义分组与Hbase预分区结合节省内存消耗

    Hbas预分区 在系统中向hbase中插入数据时,常常通过设置region的预分区来防止大数据量插入的热点问题,提高数据插入的效率,同时可以减少当数据猛增时由于Region split带来的资源消耗. ...

  3. hbase 预分区_hbase的rowKey设计原则

    前言 访问hbase table中的行,只有三种方式: 1 通过单个row key访问 2 通过row key的range 3 全表扫描 可以看出rowkey设计的好与坏直接决定了查询速度,在hbas ...

  4. Hbase预分区与优化

    Hbase支持两种读读操作,Scan & Get两种,Get在hbase的内部也是会转换成startRow == endRow的操作,所以本文就只介绍Get操作. Scan的实际执行者是Reg ...

  5. hbase Normalizer解决预分区错误,在不动数据的情况下完美解决热点问题

    (转)  http://www.aboutyun.com/forum.php?mod=viewthread&tid=24292 1.对于预分区错误,hbase使用什么功能解决? 2.Regio ...

  6. shell和javaAPI两种方式创建hbase表并预分区

    在hbase里面,如果我们建表不预分区,那么一个表的数据都会被一个region处理,如果数据过多就会执行region的split,如果数据量很大这样会很费性能,所以最好我们先根据业务的数据量在建表的时 ...

  7. hbase热点问题解决(预分区)

    一.出现热点问题原因        1.hbase的中的数据是按照字典序排序的,当大量连续的rowkey集中写在个别的region,各个region之间数据分布不均衡: 2.创建表时没有提前预分区,创 ...

  8. phonex的使用,二级索引,预分区,调优

    文章目录 一.基本指令 1)创建表 2)删除表 3)插入数据 4)查询数据 5)删除数据 6)退出命令行 二.映射 1)视图映射 创建视图 查询视图 删除视图 2)表映射 删除表 3)视图映射和表映射 ...

  9. HBase系列从入门到精通(二)

    1.HBase进阶 1.1.RegionServer 架构 StoreFile 保存实际数据的物理文件,StoreFile以Hfile的形式存储在HDFS上.每个Store会有一个或多个StoreFi ...

最新文章

  1. [YTU]_2440( C++习题 复数类--重载运算符+,-,*,/)
  2. TigerGraph持续产品创新,发布最新的“全民图”版本
  3. django select option拼接时value中空格后的内容被截断
  4. RTX5 | 消息队列02 - 放入与取出消息
  5. Java实训项目:GUI学生信息管理系统(2017)
  6. 20200723:198周周赛学习记录
  7. css3 Gradient背景
  8. MySQL数据库(7)_MySQL 数据备份与还原
  9. Java 游戏手柄 编程
  10. 微信浏览器跳转app解决方案
  11. 格鲁夫给经理人的第一课
  12. linux加载模块失败,linux 第二次加载netlink模块时,内核创建sock失败
  13. 数据库_mysql数据库引擎_数据库索引
  14. jQuery判断email地址 邮箱地址 email regex
  15. 生化危机绝密报告2java,生化危机2重制版,玩家一路尾随暴君,却发现暴君不见光的小秘密...
  16. 图像滤波器系列(1):冲击滤波器,shock_filter
  17. 【进阶】TypeScript 中的 Type
  18. 数字IC设计学习笔记_静态时序分析STA_ STA基本概念
  19. Linux:MySQL:重启服务细节
  20. 【Python·OpenCV】如何实现 HSV 与灰度图的相互转换?

热门文章

  1. php联合查询的前提条件,PHP生成HTML前提条件及原理介绍_PHP教程
  2. python读取csv时keyerror_python – 错误:pandas hashtable keyerror
  3. php中对数组进行转码,php实现转码的方式(支持数组类型转码)
  4. python多线程并发每秒6000_Python多线程并发的误区
  5. Mysql查询汉字语法_Mysql数据库查询语法详解
  6. Tableau上面地图与条形图结合_Tableau 全新地图实战演示,更快、更高、更强
  7. python 代码行数统计工具_使用Python设计一个代码统计工具
  8. python中mod运算符_自定义 Python 类中的运算符和函数重载(上)
  9. python如何实现循环_如何构造python循环
  10. buck电路_Buck电路的多角度分析