小记--------hbase数据库各组件应用及作用

时间:2022-03-20 03:55:36

小记--------hbase数据库各组件应用及作用

 

 

zookeeper:主要用于协调管理分布式应用程序;

  1.实现master高可用;如果 active master由于异常宕机,zookeeper会检测到该宕机时间,并通过一定机制选举出新的master

2.管理系统核心元数据:当前系统中正常工作的regionserver集合,保存系统元数据表hbase:meta所在额regionserver地址等等

3.参与regionserver宕机恢复:zookeeper通过心跳可以感知到regionserver是否宕机,并在宕机后通知master进行宕机处理

4.实现分布式表锁:hbase对表进行操作时需要先加锁,防止其他用户对同一张表进行操作,造成表状态不一致;zookeeper可以通过特定机制实现分布式表锁

 

master:主要负责hbase系统的各种管理工作;

1.处理用户的各种管理请求;建表、修改表、切分表、数据合并、compaction

2.管理集群中所有regionserver;包括region的负载均衡,regionserver的宕机恢复,region的迁移

3.清理过期日志以及文件;会每隔一段时间检查hdfs中HLog是否过期、HFile是否已经被删除,并在过期后删除

 

RegionServer(有几台机器就有几个regionserver)主要用来响应用户的IO请求。由WAL(HLog)、BlockCache、多个region构成

1.WALHLog):HLog在hbase中有两个核心作用:

一、用于实现数据的高可靠性;hbase在数据写入时,会先写入缓存,再异步刷新到磁盘,为防止缓存数据丢失,数据写入缓存之前首先顺序写入HLog;这样的话即使数据丢失,仍然可以通过HLog恢复。

、用于实现hbase集群见主从复制,通过回访主集群推送过来的HLog日志实现主从复制

        

2.BlockCache:hbase系统中读缓存,客户端从磁盘读取数据之后通常会将数据缓存到系统内存中,后续访问同一行数据可以直接从内存中获取而不需要访问磁盘

 

3.Regionregion是集群负载均衡的基本单位。

一个region由一个或者多个store构成。

store的个数取决于表中列簇的个数,多少个列簇就有多少个store

每个store由一个memstore和一个或者多个HFile组成。MemStore称为写缓存,首先会写到Memstore中,当MemStore写满之后(缓存数据超过阈值,默认128M)系统会异步将数据flush成一个HFile文件,HFile文件数超过一定阈值之后系统将会执行Compact操作,将这些小文件通过一定策略合并成一个或多个大文件

 

HDFShbase底层依赖hdfs组件存储时间数据,包括用户数据文件、HLog日志文件等最终都会写入hdfs落到磁盘。hdfs数据默认3副本存储策略可以有效保证数据的高可靠性。hbase内部封装了一个名为HDFSClient的HDFS客户端组件,负责对HDFS的实际数据进行读写访问