HBASE学习笔记-初步印象

时间:2021-08-19 17:05:44

HBASE概念:

  HBASE是一个分布式架构的数据库,通过对数据进行多层的分块打散储存。从而改写传统数据库的储存能力和读取速度。

HBASE的集群服务器:

  HBASE的集群主要分为Zookeeper集群,Master集群,RegionSever集群。

    Zookeeper集群:储存Table的Region地址,管理Master和RegionSever服务器间的操作。

    Master集群:进行建表,删表工作和分配Region(管理负载均衡,Split时,重新分配Region)

    RegionSever集群:储存真正数据的地方

数据储存模型:

  分块储存概念:

    1.Hbase的Table会按行进行Region的数据块划分。

    2.Region数据块会被分配给集群的各个(Regionsever)机器上面去。

    3.每个Regin块会再进行Store块划分,每个Store块拥有一个MenStore和0至多个StoreFile

  Region块的信息储存:

    HBase中有两张记录Region信息所在位置的特殊的Table,-ROOT-和.META.

    .META.:记录了各个用户表的Region信息,.META.本身可以有多个regoin,放在RegionSever中

    -ROOT-:记录了.META.表的Region信息,-ROOT-本身只有一个region,放在RegionSever中

    Zookeeper中记录了-ROOT-表的location

  Store块中储存的信息:

    RowKey:是Byte array,是表中每条记录的“主键”,方便快速查找,Rowkey的设计非常重要。

    Column Family:列族,拥有一个名称(string),包含一个或者多个相关列

    Column:属于某一个columnfamily,familyName:columnName,每条记录可动态添加

    Version Number:类型为Long,默认值是系统时间戳,可由用户自定义

    Value(Cell):Byte array

数据流程:

  创建、修改表:

    1.Client向Zookeeper发送创建表请求,Zookeeper记录日志后传递给HMaster。

    2.HMaster返回可以写入RegionSever给Zookeeper

    3.Zookeeper把创建的表和Regionsever的关系通过ROOT表和META表记录下来

    4.以后进行表操作则不用经过HMaster,直接从Zookeeper中获取对应的RegionSever地址

  操作表:

    1.Client向Zookeeper发送操作数据请求

    2.Zookeeper检查缓存中是否有目标表与RegionSever的关系

    3.从Zookeeper中抽取ROOT表和META表读取目标表与RegionSever的关系

    4.到对应的RegionSever中进行Hlog日志记录并找到对应的StoreFile进行数据操作

    5.把最后的Hlog和StoreFile储存到HDFS中

参考资料:

http://www.cnblogs.com/JemBai/archive/2012/07/21/2602432.html

http://www.uml.org.cn/sjjm/201212141.asp#6

http://www.csdn.net/article/2014-02-17/2818431-HDFS+MapReduce+Hbase

http://blog.csdn.net/woshiwanxin102213/article/details/17584043

http://www.cnblogs.com/hark0623/p/5571193.html

http://tangay.iteye.com/blog/736871