1、什么是HBase?
Hbase是一个开源的、分布式的、可扩展的非关系型数据库
原型受Google的BIgTable影响
官网:http://hbase.apache.org
建立在HDFS上
HBase的目标是存储并处理大型的数据
2、Hbase特点:
1.海量存储:适合PB级别的数据存储
2.列式存储:以列簇为单位(store),列簇下面可以有多个列
3.易扩展:处理能力(RegionServer)扩展,基于存储的扩展(HDFS)
4.高并发: 建立在廉价机器上,获得高并发低延迟的服务
5.稀疏: 针对Hbase列的灵活性,列数据为空的时候,不会占用存储空间
3 Hbase架构:
角色:
client: 访问Hbase接口, 比如cache(缓存)的.META. 元数据的信息
Zookeeper:
- 监控master的运行状态(只能有一个master运行, 如果master异常, 则通过竞争机制产生新的master服务)
-监控 HregionServer的状态, 通知Master HregionServer上下线的信息
-存储元数据统一入口
Hmaster:
-为RegionServer分配Region, 发现失效的Region分配到正常的Regionserver上
-维护集群的元数据的信息
-维护集群的负载均衡
HRegionServer:
-管理Master分配的 region
-处理客户端的读写请求
-与HDFS交互, 刷新数据存储到HDFS上
-实际负责Region过大之后的切分
-负责StoreFile的合并工作
HDFS:
-存储HBase中最终底层数据的服务
Region: 相当于Hbase的表或者表的一部分(分片), RegionServer : region = 1 : * (一对多)
Store: Hfile存储在Store中, 一个Store对应一个列簇
MemStore: 内存缓冲区, 位于内存中
HFile: 磁盘上保存实际数据的物理文件, StoreFile是以HFile的形式存储在HDFS上