大数据技术之HBase
1.数据模型
1.1数据模型概述
- HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限 定符和时间戳
- 每个值是一个未经解释的字符串,没有数据类型
- 用户在表中存储数据,每一行都有一个可排序的行键和任意多的列
- 表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多个列,同一 个列族里面的数据存储在一起
- 列族支持动态扩展,可以很轻松地添加一个列族或列,无需预先定义列的数量以 及类型,所有列均以字符串形式存储,用户需要自行进行数据类型转换
- HBase中执行更新操作时,
并不会删除数据旧的版本,而是生成一个新的版本
, 旧有的版本仍然保留(这是和HDFS只允许追加不允许修改的特性相关的)
1.2数据模型相关概念
2.实现原理
2.1HBase的功能组件
- 库函数:一般用于链接每个客户端
- Master服务器:充当管家的作用
- Region服务器:负责存储不同的Region
Hbase设计了三层结构实现Region的寻址和定位
- 首先要构建一个元数据表,假设这个元数据表只有两列,第一列是Region的id,第二列是Region服务器的id
- Hbase最开始构建时有一个映射表,这个映射表被称为.META.表
- .META.表时用来存储元数据的
3.运行机制
3.1HBase的系统架构图
-
客户端
·客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置 信息,用来加快后续数据访问过程
· 包含访问HBase的接口并维护cache来加快对HBase的访问 -
Zookeeper服务器
– Zookeeper可以帮助选举出一个Master作为集群的总管,并保证在任何时刻总 有唯一一个Master在运行,这就避免了Master的“单点失效”问题
• 保证任何时候,集群中只有一个master
• 存贮所有Region的寻址入口。
• 实时监控Region server的上线和下线信息。并实时通知Master
• 存储HBase的schema和table元数据 -
Master
主服务器Master主要负责表和Region的管理工作:
- 管理用户对表的增加、删除、修改、查询等操作
- 实现不同Region服务器之间的负载均衡
- 在Region分裂或合并后,负责重新调整Region的分布
- 对发生故障失效的Region服务器上的Region进行迁移
版本二:
• 为Region server分配region
• 负责Region server的负载均衡
• 发现失效的Region server并重新分配其上的region
• 管理用户对table的增删改操作
-
Region服务器
– Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并 响应用户的读写请求
• Region server维护region,处理对这些region的IO请求
• Region server负责切分在运行过程中变得过大的region
3.2Region服务器工作原理
- 用户读写数据过程
•用户写入数据时,被分配到相应Region服务器去执行
•用户数据首先被写入到MemStore和Hlog中
•只有当操作写入Hlog之后,commit()调用才会将其返回给客户端
•当用户读取数据时,Region服务器会首先访问MemStore缓存,如果 找不到,再去磁盘上面的StoreFile中寻找