文章目录
  1. 1. Hbase特点:
  2. 2. Hbase的逻辑结构
  3. 3. 物理存储
  4. 4. 系统架构
    1. 4.1. Client
    2. 4.2. Zookeeper
    3. 4.3. Master
    4. 4.4. Region Server

Hbase特点:

HBase介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。

HBase中的表一般有这样的特点:

  1. 大:一个表可以有上亿行,上百万列
  2. 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
  3. 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。

    Hbase的逻辑结构

    HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(row family)。
    ddd

    物理存储

    Table中的所有行都按照row key的字典序排列。

Table 在行的方向上分割为多个Hregion。
ddd

region按大小分割的,每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,Hregion就会等分会两个新的Hregion。当table中的行不断增多,就会有越来越多的Hregion。
ddd

Hregion是Hbase中分布式存储和负载均衡的最小单元。最小单元就表示不同的Hregion可以分布在不同的HRegion server上。但一个Hregion是不会拆分到多个server上的。
ddd

HRegion虽然是分布式存储的最小单元,但并不是存储的最小单元。
事实上,HRegion由一个或者多个Store组成,每个store保存一个columns family。
每个Strore又由一个memStore和0至多个StoreFile组成。

系统架构

ddd

Client

  1. 包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如regione的位置信息。

    Zookeeper

  2. 保证任何时候,集群中只有一个master
  3. 存贮所有Region的寻址入口。
  4. 实时监控Region Server的状态,将Region server的上线和下线信息实时通知给Master
  5. 存储Hbase的schema,包括有哪些table,每个table有哪些column family

    Master

  6. 为Region server分配region
  7. 负责region server的负载均衡
  8. 发现失效的region server并重新分配其上的region
  9. GFS上的垃圾文件回收
  10. 处理schema更新请求

    Region Server

  11. Region server维护Master分配给它的region,处理对这些region的IO请求
  12. Region server负责切分在运行过程中变得过大的region
    可以看到,client访问hbase上数据的过程并不需要master参与(寻址访问zookeeper和region server,数据读写访问regione server),master仅仅维护者table和region的元数据信息,负载很低。
文章目录
  1. 1. Hbase特点:
  2. 2. Hbase的逻辑结构
  3. 3. 物理存储
  4. 4. 系统架构
    1. 4.1. Client
    2. 4.2. Zookeeper
    3. 4.3. Master
    4. 4.4. Region Server