一、
1、client
整个HBase集群的访问入口;
使用HBase RPC机制与HMaster和HRegionServer进行通信;
与HMaster进行通信进行管理类操作;
与HRegionServer进行数据读写类操作;
包含访问HBase的接口,并维护cache来加快对HBase的访问
2、zookeeper
保证任何时候,集群中只有一个HMaster;
存贮所有HRegion的寻入口;
实时监控HRegion Server的上线和下线信息,并实时通知给HMaster;
存储HBase的schema和table元数据;
Zookeeper Quorum存储-ROOT-表地址、HMaster地址。
3、master
>HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master在运行主要负责Table和Region的管理工作。 >管理用户对table的增删改查操作; >管理HRegionServer的负载均衡,调整Region分布; >Region Split后,负责新Region的分布; >在HRegionServer停机后,负责失效HRegionServer上Region迁移工作
4、HRegion Server
维护HRegion,处理对这些HRegion的IO请求,向HDFS文件系统中读写数据;
负责切分在运行过程中变得过大的HRegion。
Client访问hbase上数据的过程并不需要master参与(寻址访问Zookeeper和HRegion Server,数据读写访问HRegione Server),
HMaster仅仅维护者table和Region的元数据信息,负载很低。
5、HBase & zookeeper
◆HBase 依赖ZooKeeper;
◆默认情况下,HBase管理ZooKeeper实例(指hbase自带的zk),比如,启动或者停止ZooKeeper;
◆HMaster与HRegionServers启动时会向ZooKeeper注册;
◆Zookeeper的引入使得HMaster不再是单点故障。