李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
Hbase架构
Leefs
2021-02-12 PM
2844℃
1条
# 02.Hbase架构 ### 一、系统架构 HBase采用Master/Slave架构搭建集群,它隶属于Hadoop生态系统,由以下类型节点组成: HMaster节点、HRegionServer节点、ZooKeeper集群,而在底层,它将数据存储于HDFS中,因而涉及到HDFS的NameNode、DataNode等,总体结构如下: ![02.Hbase架构01.png](https://lilinchao.com/usr/uploads/2021/02/363608894.png) **注意:应该是每一个 RegionServer 就只有一个 HLog,而不是一个 Region 有一个 HLog。** 从图中可以看出Hbase是由Client、Zookeeper、Master、HRegionServer、HDFS等几个组件组成,下面来介绍一下几个组件的相关功能: **(1)Client** 包含访问HBase的接口,并维护cache来加快对Hbase的访问,比如region的位置信息。HBase Client使用HBase的RPC机制与HMaster和HRegionServer进行通信,对于管理类操作,Client与HMaster进行RPC;对于数据读写类操作,Client与HRegionServer进行RPC。 **(2)Zookeeper** HBase通过Zookeeper来做master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。具体工作如下: + 通过Zoopkeeper来保证集群中只有1个master在运行,如果master异常,会通过竞争机制产生新的master提供服务 + 通过Zoopkeeper来监控RegionServer的状态,当RegionSevrer有异常的时候,通过回调的形式通知Master RegionServer上下线的信息 + 通过Zoopkeeper存储元数据的统一入口地址 **(3)HMaster(NameNode)** master节点的主要职责如下: + 为RegionServer分配Region + 维护整个集群的负载均衡 + 维护集群的元数据信息 + 发现失效的Region,并将失效的Region分配到正常的RegionServer上 + 当RegionSever失效的时候,协调对应Hlog的拆分 **(4)HRegionServer(DataNode)** HRegionServer直接对接用户的读写请求,是真正的“干活”的节点,它的功能概括如下: + 管理master为其分配的Region + 处理来自客户端的读写请求 + 负责和底层HDFS交互,存储数据到HDFS + 负责Storefile的合并工作 **(5)HDFS** HDFS为Hbase提供最终的底层数据存储服务,同时为HBase提供高可用(Hlog存储在HDFS)的支持,具体功能概括如下: + 提供元数据和表数据的底层分布式存储服务 + 数据多副本,保证的高可靠和高可用性 ### 二、Hbase中的角色 **1、HMaster** 功能: + 监控RegionServer + 处理RegionServer故障转移 + 处理元数据的变更 + 处理region的分配或转移 + 在空闲时间进行数据的负载均衡 + 通过Zookeeper发布自己的位置给客户端 **2、RegionServer** 功能: + 负责存储HBase的实际数据 + 处理分配给它的Region + 刷新缓存到HDFS + 维护Hlog + 执行压缩 + 负责处理Region分片 **3、其他组件** **3.1 Write-Ahead logs** HBase的修改记录,当对HBase读写数据的时候,数据不是直接写进磁盘,它会在内存中保留一段时间(时间以及数据量阈值可以设定)。但把数据保存在内存中可能有更高的概率引起数据丢失,为了解决这个问题,数据会先写在一个叫做Write-Ahead logfile的文件中,然后再写入内存中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。 **3.2 Region** Hbase表的分片,HBase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有多个不同的region。 **3.3 Store** HFile存储在Store中,一个Store对应HBase表中的一个列族(列簇, Column Family)。 **3.4 MemStore** 顾名思义,就是内存存储,位于内存中,用来保存当前的数据操作,所以当数据保存在WAL中之后,RegsionServer会在内存中存储键值对。 **3.5 HFile** 这是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。StoreFile是以Hfile的形式存储在HDFS的。
标签:
Hbase
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1110.html
上一篇
Hbase基础入门
下一篇
Hbase存储结构
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
Java编程思想
VUE
MyBatis
Git
GET和POST
Hbase
Golang
数据结构
Java阻塞队列
DataWarehouse
HDFS
JavaScript
Sentinel
Scala
哈希表
Filter
Java
人工智能
MyBatis-Plus
工具
Quartz
Kafka
容器深入研究
Thymeleaf
线程池
Ubuntu
FileBeat
JavaWeb
Spark SQL
Azkaban
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭