一:整体架构
1.体系结构
2.物理模型
3.存储体系
regionserver—>region->多个store(列簇)->一个memstore和多个storefile
4.HDFS上的目录结构
namespace—》table-》region-》列簇-》storefile
5.整体结构
6.HBASE的存储结构
7.写入流程
二:各个模块的功能
1.client
整个HBase集群的访问入口;
使用HBase RPC机制与HMaster和HRegionServer进行通信;
与HMaster进行通信进行管理类操作;
与HRegionServer进行数据读写类操作;
包含访问HBase的接口,并维护cache来加快对HBase的访问
2.Zookeeper
保证任何时候,集群中只有一个HMaster;
存贮所有HRegion的寻址入口;
实时监控HRegion Server的上线和下线信息,并实时通知给HMaster;
存储HBase的schema和table元数据;
3.HMaster
HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master在运行,主负责Table和Region的管理工作。
管理用户对table的增删改查操作;
管理HRegionServer的负载均衡,调整Region分布;
Region Split后,负责新Region的分布;
在HRegionServer停机后,负责失效HRegionServer上Region迁移工作。
4.HRegionserver
维护HRegion,处理对这些HRegion的IO请求,向HDFS文件系统中读写数据;
负责切分在运行过程中变得过大的HRegion。
Client访问hbase上数据的过程并不需要master参与(寻址访问Zookeeper和HRegion Server,数据读写访问HRegione Server),HMaster仅仅维护这table和 Region的元数据信息,负载很低。
5.HBase与Zookeeper