Hbase基本元素

4.1、Client

Client包含了访问Hbase的接口,另外Client还维护了对应的cache来加速Hbase的访问,比如cache的.META.元数据的信息。

4.2、Zookeeper

Hbase通过Zookeeper来做master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。具体工作如下:

通过Zoopkeeper来保证集群中只有1个master在运行,如果master异常,会通过竞争机制产生新的master提供服务

通过Zoopkeeper来监控RegionServer的状态,当RegionSevrer有异常的时候,通过回调的形式通知Master RegionServer上下限的信息

通过Zoopkeeper存储元数据的统一入口地址

4.3、Hmaster

master节点的主要职责如下:

为RegionServer分配Region

维护整个集群的负载均衡

维护集群的元数据信息

发现失效的Region,并将失效的Region分配到正常的RegionServer上

当RegionSever失效的时候,协调对应Hlog的拆分

4.4、HregionServer

HregionServer直接对接用户的读写请求,是真正的“干活”的节点。它的功能概括如下:

管理master为其分配的Region

处理来自客户端的读写请求

负责和底层HDFS的交互,存储数据到HDFS

负责Region变大以后的拆分

负责Storefile的合并工作

4.5、HDFS

HDFS为Hbase提供最终的底层数据存储服务,同时为Hbase提供高可用(Hlog存储在HDFS)的支持,具体功能概括如下:

提供元数据和表数据的底层分布式存储服务

数据多副本,保证的高可靠和高可用性。

Hlog是Hbase实现WAL(Write ahead log)方式产生的日志信息,内部是一个简单的顺序日志。每个RegionServer对应1个Hlog(备注:1.x版本的可以开启MultiWAL功能,允许多个Hlog),所有对于该RegionServer的写入都被记录到Hlog中。Hlog实现的功能就是我们前面讲到的保证数据安全。当RegionServer出现问题的时候,能跟进Hlog来做数据恢复。此外为了保证恢复的效率,Hbase会限制最大保存的Hlog数量,如果达到Hlog的最大个数(hase.regionserver.max.logs参数控制)的时候,就会触发强制刷盘操作。对于已经刷盘的数据,其对应的Hlog会有一个过期的概念,Hlog过期后,会被监控线程移动到.oldlogs,然后会被自动删除掉。
更多详见:https://blog.csdn.net/xqhadoop/article/details/79953045

猜你喜欢

转载自blog.csdn.net/lkpklpk/article/details/81200649