HBase(七)表的预分区

HBase表的预分区 当一个table刚被创建的时候,Hbase默认的分配一个region给table。也就是说这个时候,所有的读写请求都会访问到同一个regionServer的同一个region中,这个时候就达不到负载均衡的效果了,集群中的其他regionServer就可能会处于比较空闲的状态。 解决这个问题可以用pre-splitting,在创建table的时候就配置好,生成多个region。 1 为何要预分区? 增加数据读写效率 负载均衡,防止数据倾斜 方便集群容灾调度r... ... [查看更多]

Views: 7

HBase(六)flush、compact机制

Flush 触发条件 memstore 级别限制 当Region中任意一个MemStore的大小达到了上限(hbase.hregion.memstore.flush.size,默认128MB),会触发Memstore刷新(flush)。 region 级别限制 当Region中所有Memstore的大小总和达到了上限(hbase.hregion.memstore.block.multiplier * hbase.hregion.memstore.flush.size,默认 ... ... [查看更多]

Views: 15

HBase(五)数据存储原理

一个HRegionServer会负责管理很多个region 一个region包含很多个store 一个列族就划分成一个store 如果一个表中只有1个列族,那么这个表的每一个region中只有一个store 如果一个表中有N个列族,那么这个表的每一个region中有N个store 一个store里面只有一个memstore memstore是一块内存区域,写入的数据会先写入memstore进行缓冲,然后再把数据刷到磁盘 一个store里面有很多个StoreFile,... ... [查看更多]

Views: 11

HBase(四)JavaAPI操作 和 过滤器查询

HBase的JavaAPI操作 HBase是一个分布式的NoSql数据库,在实际工作当中,我们一般都可以通过JavaAPI来进行各种数据的操作,包括创建表,以及数据的增删改查等等 创建maven工程 讲如下内容作为maven工程中pom.xml的repositories的内容 自动导包 创建myuser表 创建myuser表,此表有两个列族f1和f2 向表中添加数据 查询数据 初始化一批数据到HBase表当中,用于查询 Get查询 按照rowkey进行查询... ... [查看更多]

Views: 11

HBase(三)shell 命令基本操作

进入HBase客户端命令操作界面 hadoop100执行以下命令,进入HBase的shell客户端 help 帮助命令 list 查看有哪些表 查看当前数据库中有哪些表 create 创建表 创建user表,包含info、data两个列族 使用create命令 put 插入数据操作 向表中插入数据 使用put命令 查询数据操作 通过rowkey进行查询 获取user表中row key为rk0001的所有信息(即所有cell的数据) 使用get命令 ... ... [查看更多]

Views: 8