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