可以看到,Client访问HBase上数据的过程并不需要Master参与(寻址访问Zookeeper和Region Server,数据读写访问Regione Server),Master仅仅维护者table和region的元数据信息,负载很低。
一、Client
包含访问hbase的接口,client维护着一些cache来加快对HBase的访问,比如Regione的位置信息。
二、Zookeeper
- 通过选举,保证任何时候集群中只有一个Master。Master与RegionServers 启动时会向ZooKeeper注册。
- 存贮所有Region的寻址入口。
- 实时监控Region Server的状态,将Region server的上线和下线信息并实时通知给Master。
- 存储Hbase的Schema,包括有哪些表,每个表有哪些列族。
- 默认情况下,HBase 管理ZooKeeper 实例,比如, 启动或者停止ZooKeeper。
三、Master
- 为Region Server分配Region。
- 负责Region Server的负载均衡。
- 发现失效的Region Server并重新分配其上的Region。
- GFS上的垃圾文件回收。
- 处理schema更新请求。
- 管理用户对table的增删改查操作。
四、Region Server
- Region server维护Master分配给它的Region,处理对这些Region的I/O请求。
- Region Server负责切分在运行过程中变得过大的Region。