大数据技术之HBase

1.数据模型

1.1数据模型概述

  • HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限 定符和时间戳
  • 每个值是一个未经解释的字符串,没有数据类型
  • 用户在表中存储数据,每一行都有一个可排序的行键和任意多的列
  • 表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多个列,同一 个列族里面的数据存储在一起
  • 列族支持动态扩展,可以很轻松地添加一个列族或列,无需预先定义列的数量以 及类型,所有列均以字符串形式存储,用户需要自行进行数据类型转换
  • HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本, 旧有的版本仍然保留(这是和HDFS只允许追加不允许修改的特性相关的)

1.2数据模型相关概念

大数据技术之HBase

2.实现原理

2.1HBase的功能组件

  1. 库函数:一般用于链接每个客户端
  2. Master服务器:充当管家的作用
    大数据技术之HBase
  3. Region服务器:负责存储不同的Region
    Hbase设计了三层结构实现Region的寻址和定位
  • 首先要构建一个元数据表,假设这个元数据表只有两列,第一列是Region的id,第二列是Region服务器的id
  • Hbase最开始构建时有一个映射表,这个映射表被称为.META.表
  • .META.表时用来存储元数据的大数据技术之HBase

大数据技术之HBase

3.运行机制

3.1HBase的系统架构图

大数据技术之HBase大数据技术之HBase

  1. 客户端
    ·客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置 信息,用来加快后续数据访问过程
    · 包含访问HBase的接口并维护cache来加快对HBase的访问
  2. Zookeeper服务器 – Zookeeper可以帮助选举出一个Master作为集群的总管,并保证在任何时刻总 有唯一一个Master在运行,这就避免了Master的“单点失效”问题
    • 保证任何时候,集群中只有一个master
    • 存贮所有Region的寻址入口。
    • 实时监控Region server的上线和下线信息。并实时通知Master
    • 存储HBase的schema和table元数据大数据技术之HBase
  3. Master
    主服务器Master主要负责表和Region的管理工作:
  • 管理用户对表的增加、删除、修改、查询等操作
  • 实现不同Region服务器之间的负载均衡
  • 在Region分裂或合并后,负责重新调整Region的分布
  • 对发生故障失效的Region服务器上的Region进行迁移
    版本二:
    • 为Region server分配region
    • 负责Region server的负载均衡
    • 发现失效的Region server并重新分配其上的region
    • 管理用户对table的增删改操作
  1. Region服务器 – Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并 响应用户的读写请求
    • Region server维护region,处理对这些region的IO请求
    • Region server负责切分在运行过程中变得过大的region

3.2Region服务器工作原理

大数据技术之HBase

  1. 用户读写数据过程
    大数据技术之HBase大数据技术之HBase•用户写入数据时,被分配到相应Region服务器去执行
    •用户数据首先被写入到MemStore和Hlog中
    •只有当操作写入Hlog之后,commit()调用才会将其返回给客户端
    •当用户读取数据时,Region服务器会首先访问MemStore缓存,如果 找不到,再去磁盘上面的StoreFile中寻找