1,hbase regionserver 向zookeeper注册,提供hbase regionserver状态信息(是否在线)
2,hmaster启动时候会将hbase 系统表-ROOT- 加载到 zookeeper cluster,通过zookeeper cluster可以获取当前系统表.META.的存储所对应的regionserver信息。
HMaster主要作用在于,通过HMaster维护系统表-ROOT-,.META.,记录regionserver所对应region变化信息。此外还负责监控处理当前hbase cluster中regionserver状态变化信息。
        hbase regionserver则用于多个/单个维护region。
        region则对应为hbase数据表的表分区数据维护。

Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问,中间需要多次网络操作,不过client端会做cache缓存。

 

 

Zookeeper

Zookeeper Quorum中除了存储了-ROOT-表的地址和HMaster的地址,HRegionServer也会把自己以Ephemeral方式注册到Zookeeper中,使得HMaster可以随时感知到各个HRegionServer的健康状态。此外,Zookeeper也避免了HMaster的单点问题,见下文描述

 

HMaster

HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行

 

 

当HRegionServer意外终止后,HMaster会通过Zookeeper感知到

3,配置
zoo.cfg中的
server.01=namenode:2888:3888
server.02=datanode:2888:3888
server.03=datanode:2888:3888
其中namenode和datanode是其他主机的ip地址,2888端口号是zookeeper服务之间通信的端口,3888是zookeeper与其他应用程序进行通信的端口
4,表数据查找过程
.META.表用来记录用户表的region信息,随着数据的增多,也会拆分成多个region,由不同的regionserver管理;
.ROOT.表用来描述.META.表的region信息,只有一个region,会被某台regionserver管理;
通过zookeeper来存储.ROOT.表的region信息,所以查找数据过程如下图: 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐