HBase架构中各组件的功能作用

来源:互联网 发布:淘宝网首页登陆电脑版 编辑:程序博客网 时间:2024/06/05 05:34

一、HBase Architecture

二、HBase架构中的客户端Client

客户端有以下几点作用:

       1. 整个HBase集群的访问入口;

       2. 使用HBase RPC机制与HMaster和HRegionServer进行通信;

       3. 使用HMaster进行通信进行管理类操作;

       4. 与HRegionServer进行数据读写类操作;

       5. 包含访问HBase的接口,并维护cache来加快对HBase的访问。

三、协调服务组件Zookeeper

Zookeeper的作用如下:

       1. 保证任何时候,集群中只有一个HMaster;

       2. 存储所有的HRegion的寻址入口;

       3. 实时监控HRegionServer的上线和下线信息,并实时通知给HMaster;

       4. 存储HBase的schema和table元数据;

       5. Zookeeper Quorum存储-ROOT-表地址、HMaster地址。

四、主节点HMaster

HMaster的主要功能如下:

       1. HMaster没有单节点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master在运行,主要负责Table和Region的管理工作。

       如何启动多个HMaster?

       通过hbase-daemons.sh启动,步骤如下:1)在hbase/conf目录下编辑backup-masters;2)编辑内容为自己的主机名;3)保存后,执行如下命令:bin/hbase-daemons.sh start master-backup。

       2. 管理用户对表的增删改查操作;

       3. 管理HRegionServer的负载均衡,调整Region分布(在命令行里面有一个tools,tools这个分组命令其实全部都是Master做的事情);

       4. Region Split后,负责新Region的分布;

       5. 在HRegionServer停机后,负责失效HRegionServer上Region迁移工作。

五、Region节点HRegionServer

HRegionServer的功能如下:

       1. 维护HRegion,处理HRegion的IO请求,向HDFS文件系统中读写数据;

       2. 负责切分运行过程中变得过大的HRegion;

       3. Client访问HBase上数据的过程并不需要Master参与(寻址访问zookeeper和HRegionServer,数据读写访问HRegionServer),HMaster仅仅维护着table和Region的元数据信息,负载很低。

六、HBase与Zookeeper的关系 


       1. HBase依赖Zookeeper

       首先HMaster和RegionServer都需要和Zookeeper交互,因为RegionServer上线了还需要交互,之后Zookeeper知道了告诉HMaster,而下线或断开了Zookeeper知道了也告诉HMaster;同时HMaster还管理RegionServer,HMaster还会在HDFS上写Region数据。

       2. 默认情况下,HBase管理Zookeeper实例,比如,启动或者停止Zookeeper;

       3. HMaster与HRegionServer启动时会向Zookeeper注册;

       4. Zookeeper的引入使得HMaster不再是单点故障。


原创粉丝点击