HBase内部结构、zookeeper | 「掘金日新计划 · 12 月更文挑战」

97 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天

一、本篇笔记的重点内容

  • HBase的系统架构
  • HRegionServer内部结构
  • Zookeeper

二、详细知识点介绍

 HRegionServer内部结构

HRegionServer可以理解为HBase的身体,负责HBase的数据存取工作,所有客户端对数据的最终读写操作都将落到RegionServer上。

RegionServer内部还有许多核心的设计,下面我们来具体的了解下它的架构: image.png 一般,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。