客户端首先发送请求到zookeeper,zookeeper再通知HMaster,HMaster通过ZooKeeper发布自己的位置给客户端,客户端获取了地址,再把信息交给regionServer去干活儿,RegionServer上有个日志Hlog记录所有的操作行为,一个RegionServer上有多个Region,一个Region包含多个存储区(store),每个存储区对应一个列簇,一个存储区由多个StoreFile(StoreFile是HBase中的最小存储单元,底层最终由HFile实现,HFile就是HDFS上的block块文件,也是128M)和一个MemStore(写缓存)组成。用户写入的数据首先放入MemStore,当MemStore(128M)满了以后再刷入StoreFile(30M)。StoreFile序列化后存储到datanode上,读取时由读缓存BlockCache去读。
每一个RegionServer就是一个服务器结点,实际上就是DataNode,hbase负责管理他们
命令是给zookeeper,zookeeper通知hmaster,让hmaster告诉结点干活儿
Hlog是日志,操作行为都会记在里面
一个RegionServer上有无数个Region
HBase物理架构 - HMaster
HMaster的作用
是HBase集群的主节点,可以配置多个,用来实现HA
处理元数据的变更
监控RegionServer
负责RegionServer的负载均衡
处理RegionServer故障转移
通过ZooKeeper发布自己的位置给客户端
HBase物理架构 - RegionServer
RegionServer负责管理维护Region,负责存储HBase实际数据
一个RegionServer包含一个WAL(日志)、一个BlockCache (读缓存)和多个Region
一个Region包含多个存储区(store),每个存储区对应一个列簇
一个存储区由多个StoreFile(存储文件本质是HFile,是HDFS上的block块文件)和一个MemStore(写缓存)组成
一个StoreFile对应于一个HFile和一个列族
HFile和WAL作为序列化文件保存在HDFS上
Client与RegionServer交互
功能
负责管理HBase的实际数据
处理分配给它的Region
刷新缓存到HDFS
维护HLog
执行Compaction
负责处理Region分片