HBase存储概念的一些理解

首先,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)