Hbase
一种高可靠,面向列,可伸缩,事实读写的分布式数据库。
利用HDFS作为其文件存储系统。
MapReduce处理数据。
Zookeeper分布式协同服务。
数据结构
Row Key:行健。(唯一标识)唯一检索条件
Time Stamp :时间撮。(版本标识)
Column:列族。 (建表时确定)
![](https://i-blog.csdnimg.cn/blog_migrate/de2c1a55089c593d5804bfdc9e711dc2.png)
Row Key检索方式:
1 通过单个row key访问
2 通过row key的range
3 全表扫描
Hbase体系简图
![](https://i-blog.csdnimg.cn/blog_migrate/85b699c89105ef456c3076bbad5f097e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/611b52c122cb2f5a1ecc2f36044790ef.jpeg)
Zookeeper
保证任何时候,集群中只有一个master
• 存贮所有Region的寻址入口。
• 实时监控Region server的上线和下线信息。 并实时通知Master
• 存储HBase的schema和table元数据
Hmaster为总控制节点
HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master在运行
主要负责Table和Region的管理工作:
1 管理用户对表的增删改查操作
2 管理HRegionServer的负载均衡,调整Region分布
3 Region Split后,负责新Region的分布
4 在HRegionServer停机后,负责失效HRegionServer上Region迁移
HreginService:一个物理节点(一台物理节点只能跑一个HreginService),可以管理多个实例HRegin
HLog:r日志。
Hregin可以是不同表的regin 每个表最初只有一个regin,
Hregin由多个store组成
Store:每个表的每个列族,
MemStore:数据刚刚些入时存在内存中的
MemStore当达到一定阀值时写入硬盘StoreFile,每次写入形成一个StoreFile,
当StoreFile达到一定
阀值时会把当前regin分割成两个,并有Hmaster分配相应的
HreginService实现负债均衡
,
写入每过一段时间Hbase将进行合并,将过期的,无用的列进行删除,Hfile:对应着HDFS文件。
客户端检索数据时顺序现在
MemStore中找,找不到再在
StoreFile中找。