在Hbase集群中,这两类节点分别负责不同的任务。其关系遵从master-slave主从结构
HMaster节点主要负责:
a.负责指派region给RegionServer.通过zk获得task的帮助
b.处理跨RegionServer的region的负载均衡问题。
c.从繁忙服务到空闲服务器之间的数据转载。
d.通过裁定负载均衡判断集群的状态
region:区域。存储管理表。
HRegionServer节点主要负责:
a.和client通信
b.处理数据操作
c.处理它下面的所有region的读写请求,一个HRegionServer具有多个region。
d.通过阀值决定region size.
region size:区域的大小,每个区域都是有大小的,由hbase.hregion.max.filesize配置,默认10G,可以在webui界面进行查看,也就是说,当表的数据>10G,
一个区域装不下的时候,当前表会被分割成多个,存储在不同的区域内,当然也有可能存储在不同的RegionServer的region中。
在一个Hbase集群中包含了HMaster和HRegionServer,HMaster主要来负责调控,保证Hbase集群的负载均衡,保证数据在存储的时候能够均衡存储,
不至于只存在某个节点造成负载不均衡,而HRegionServer则是存放数据的节点,HRegionServer节点包含多个region用来存放管理我们生成数据的表。
我们可以看出Hbase主要处理两种文件:一种是预写日志(Write-Ahead Log,WAL,标准的Hadoop SequenceFile),预写日志主要是为了容错,
在写的过程中如果出现错误或是断电,使用WAL能够恢复。另一种是实际的数据文件。这两种文件主要由HRegionServer节点管理。
在默认的情况下,HMaster也可以进行一些底层的文件操作。当存储数据到HDFS中时,用户可能注意到实际的数据文件会被切分成更小的块。也正是这一点,用户可以配置系统来更好的处理较大或较小的文件。
写入存储的流程是客户端首先会联系Zookeeper集群,还记得我们之前在大数据系列协同服务Zookeeper中说的么。
ZooKeeper来协调服务,任何配置在ZooKeeper集群上的节点在开启的时候都会向zk(ZooKeeper)集群来注册信息,
包括高可用HA的信息。Hbase配置在zk上,当然也会有注册信息,我们之前说过,可以在zk的客户端中进行查看,别忘了,zk数据存储的格式是:目录 数据