Hbase笔记

 

 

基本组件

1.Hmaster

主要功能:

  • 管理用户对Table的增、删、改、查的操作
  • 管理regionserver的负载均衡,调整region的分布
  • 在regionsplit后,负责将region分布到其他的regionserver上去

在regionserver宕机后,该regionserver上管理的region由Hmaster进行重新分配

2.HRegionserver

主要功能:

  • regionserver是Hbase集群上运行在每个工作节点上的服务组建
  • regionserver管理Hmaster分配给它的region,负责region的IO请求
  • regionserver负责切分在运行过程中变大的region

3.HRegion

  • Table在行方向上分隔成多个region,region是Hbase中分布式存储和负载均衡的最小单元,即不同的region可以分布在不同的regionserver上,但同一个region是不会拆分到多个regionserver上。
  • region按大小分隔,每个表中一般是只有一个region。随着数据不断插入表中,region不断增大,当region的某个列族达到一个阈值时,就会分为两个新的region.

表的基本概念 

  • 列族(c0lumn family):hbase表中的每个列,都归属与某个列族。列族是表的chema的一部分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。一个列族可以包含多个列。例如:info:name,info:age中name和age是列,它们都属于info这个列族。列族中可以随意添加多个列
  • 行键(RowKey):可以是任意字符串,在hbase内部,rowkey保存为自己数组,是hbase的key-value存储中的key。

         特性:rowkey按字典顺序从小到达排序,例如整形int存储:1 10 100 11 13 2 .....7  81......

         设计要求:rowkey散列原则,分布到不同的region中 

RowKey列族列族
row1

name:zhangsan,age:23

addr:beijing
row2name :lisi,sex:nan 

数据存储

Hbase是以表的形式存储数据,表在hdfs上是以文件夹的形式存在。一张表就是一个文件夹,默认存储在default命名空间下,表文件夹中存储某个region编号命名的文件夹region文件夹下面存储在事先创建的列族名称命名的文件夹。

 HStore存储是HBase存储的核心,由两部分组成,一部分是MemStore,一 部分是StoreFile。MemStore是 Sorted Memory Buffer,用户写入的数据首先会放入MemStore,当MemStore满了以后会Flush成一个StoreFile

 

 数据读取过程

 

 数据查询过程 

1、定位region

1、client访问zookeeper,查找'meta'表的存储地址,获取存储'meta'表的regionserver

2、从mate表里面查询哪个Region包含这条数据,并获取regionserver地址

3、连接这个RegionServer, 查到这条数据

2、定位region后

client与region server查询交互过程。

1、查询memstore(memstore是一个按key排序的树形结构的缓冲区),即写内存是否存储rowkey数据,如果有就返回,没有进行第二步查询;

2、查询region server的读缓存BlockCache 是否存在rowkey对应数据,如果有就返回,没有的话就行进行第三步查询。

3、在HFile里面根据rowkey查询数据,不管有没有都返回到client。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值