[hbase] hbase的架构及其各角色功能

架构图[hbase] hbase的架构及其各角色功能_第1张图片
各组件及其功能:
1)Client
Client包含了访问Hbase的接口,另外Client还维护了对应的cache来加速Hbase的访问,比如cache的.META.元数据的信息。

2)Zookeeper
HBase通过Zookeeper来做master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。具体工作如下:
通过Zoopkeeper来保证集群中只有1个master在运行,如果master异常,会通过竞争机制产生新的master提供服务
通过Zoopkeeper来监控RegionServer的状态,当RegionSevrer有异常的时候,通过回调的形式通知Master RegionServer上下线的信息
通过Zoopkeeper存储元数据的统一入口地址

3)Hmaster(类似于NameNode)
master节点是整个Hbase的管理者,其主要职责如下:
1.监控RegionServer
2.处理RegionServer故障转移
3.处理元数据的变更,处理表级别的增删改查(ddl)
4.处理region的分配或转移
5.在空闲时间进行数据的负载均衡
6.通过Zookeeper发布自己的位置给客户端

4)HregionServer(类似于DataNode)
HregionServer直接对接用户的读写请求,是真正的“干活”的节点。它的功能概括如下:
1.负责存储HBase的实际数据,负责表内数据的增删改查(dml)
2.处理分配给它的Region
3.刷新缓存到HDFS
4.维护Hlog
5.执行压缩
6.负责处理Region分片

5)HLOG(WAL)
预写日志,记录操作的日志.由于数据要经 MemStore 排序后才能刷写到 HFile,但把数据保存在内存中会有很高的概率导致数据丢失,为了解决这个问题,数据会先写在一个叫做Write-Ahead logfile 的文件中,然后再写入MemStore 中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。

6)HRegion
Hbase表的分片,HBase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有多个不同的region。

7)Store
HFile存储在Store中,一个Store对应HBase表中的一个列族

8)Mem Store
写缓存,由于HFile 中的数据要求是有序的,所以数据是先存储在MemStore 中,排好序后,等到达刷写时机才会刷写到HFile,每次刷写都会形成一个新的HFile。

9)StoreFile
缓存中的数据足够多以后会flush至硬盘形成StoreFile.是保存实际数据的物理文件,StoreFile 以HFile 的形式存储在HDFS 上。每个Store 会有一个或多个StoreFile(HFile),数据在每个StoreFile 中都是有序的。

10)HFile
是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。StoreFile是以Hfile的形式存储在HDFS的,其内在是键值对形式。

11)HDFS
HDFS为Hbase提供最终的底层数据存储服务,同时为HBase提供高可用(Hlog存储在HDFS)的支持,具体功能概括如下:
1 提供元数据和表数据的底层分布式存储服务
2 数据多副本,保证的高可靠和高可用性

你可能感兴趣的:(hbase)