Hbase的底层是基于HDFS跟zookeeper的。
Hbase的HMaster运行在NameNode上面,是所有RegionServer的管理者,分配region到每个RegionServer上面,监控每个RegionServer的状态,负载均衡和故障转移。
每个RegionServer就是一个服务器节点,实际上就是DataNode。HMaster负责管理他们,命令给到zookeeper,zookeeper通知给HMaster,HMaster通知每个节点干活。一个RegionServer里面有无数个Region。
client客户端下命令给zookeeper,zookeeper将命令通知给HMaster,HMaster将任务发给每个ReigionServer。RegionServer下面有一个HLog和多个Region。Hlog就是记录日志信息的。Region大小为10G,大于10G就会被自动切割。一个Region下面有多个Store,一个Store就是一个列簇,在Hdfs上面就是一个目录。由一个memstore和多个storefile组成。memstore是放在内存里面的,当大小达到64M的时候,就会被flush到文件中生成一个快照也就是写缓存。Memstore内存中的数据写到文件后就是StoreFile。StoreFile实际就是hdfs中的Hfile,也就是Block块文件,大小为128M。最后Hfile跟HLog文件经过序列化写入到DataNode上面