欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HBase存储概念的一些理解

程序员文章站 2022-06-22 21:05:20
...

首先,HBase是分布式NoSQL数据库。

构建在Hadoop平台上的一个应用。

 

与Hadoop类似,属于Master-slave架构。

其中,存在一个运行的HMaster,和若干个HMaster备用,通过Zookeeper协调进行HA。

HMaster主要是处理Table的增删改查,HRegion的负载均衡,Region Split 和 新Region的重新分配。

存在一个或多个HRegion 的slave架构,用于实际数据的存储。

           [HMaster]

            /          \

[HRegion]....[HRegion]

 

HRegion Server是一个存储数据的服务。

对于一张表而言,一张表被拆开成多块,每一块就是一个Region。

每个Region会保存一个表里面某段连续的数据。

 

通过RDBMS的基本存储架构来思考。

      数据库的Block  --> 就是Region

      操作系统的Block-->就是HDFS BLOCK

 

HRegion Server中的Region由多个HStore组成。

每个HStore对应Table中的一个Column Family 。

所以经常一起使用的数据就要放到Column Family里面去。

 

数据写入到Region的时候,先会写入到内存中的MemStore对象里。

然后当MemStore到大一定大小的时候,就会Flush到HStore里面。

 

为了保证一致性,HBase有一个HLog对象,会在写入MemStore之前,先记录操作。

HLog其物理上是一个Hadoop Sequence File。

 

当HStore 文件不断变大到一定阀值的时候,就会进行Split Region的请求,由HMaster进行重新分配。

 

 

 

相关标签: HBase