李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
Hbase架构
Leefs
2021-02-12 PM
2248℃
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存储结构
取消回复
评论啦~
提交评论
唉呀 ~ 仅有一条评论
123
good
回复
2021-08-13 17:56
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
Linux
Flink
Redis
数据结构和算法
国产数据库改造
Spark SQL
gorm
算法
Golang
Kibana
Thymeleaf
Beego
Flume
Yarn
JavaSE
Stream流
线程池
Ubuntu
SpringCloudAlibaba
人工智能
FastDFS
哈希表
Netty
机器学习
GET和POST
Tomcat
Typora
Golang基础
设计模式
Java
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
good