开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天
一、本篇笔记的重点内容
- HBase的系统架构
- HRegionServer内部结构
- Zookeeper
二、详细知识点介绍
HRegionServer内部结构
HRegionServer可以理解为HBase的身体,负责HBase的数据存取工作,所有客户端对数据的最终读写操作都将落到RegionServer上。
RegionServer内部还有许多核心的设计,下面我们来具体的了解下它的架构:
一般,RegionServer的主要作用如下。
(1)数据存储。借助本地文件系统或HDFS进行表数据、日志、缓存等数据的存储组织与管理。
(2)HRegion管理。负责每个HRegion的状态维护、归并、迁移等工作。
(3)WAL预写日志管理:负责日志信息的管理。在HBase中,所有的数据更新需要先入日志中,再执行数据更新操作。它主要用来解决宕机等故障恢复方面。
(4)Metrics管理:负责对外提供内部服务善的参数,包括内存使用、Region服务状况、Compaction、blockCache等。由于HBase Metrics继承了Hadoop Metrics,因此支持文件、数据流、Ganglia等多种输出方式,便于外部监控。
(5)与客户端进行RPC交互,承担具体的数据读取与写入。
(6)与HMaster节点交互。查询元数据、上报自身数据状态,并按HMaster调度接管其他失效HRegionServer节点的数据与服务。
(7)与Zookeeper集群交互。确保分布式环境下的信息共享以及待执行任务的协同。
Zookeeper
Zookeeper是分布式应用程序协调服务,用于为分布式应用程序提供一致性服务。它是Google的Chubby一个开源的实现,是HBase的重要支撑。
它在HBase中的主要作用如下。
(1)负责存入HBase中的元数据与集群状态信息。
(2)协调HMaster节点的主从切换,当检测到主HMaster节点宕机时,会通知备用HMaster节点进行接管,并知会所有HRegionServer节点。
(3)协调所有HRegionServer节点上线与下线,当检测到新的HRegionServer节点加入后,通知HMaster进行加入,管理集合;当检测到HRegionServer节点下线时,会通知HMaster,并协同其他HRegionServer节点对宕机的HRegionServer节点的HRegion集合进行接管。
(4)面向客户端提供RPC服务端口。
在HBase中,提供了一个基于Web的Zookeeper状态查询页面,该页面比较简单,访问的地址为http://IP:160010/zk.jsp。