码迷,mamicode.com
首页 > 其他好文 > 详细

【转】HBase基本原理

时间:2015-08-12 01:08:40      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:

原文链接 http://my.oschina.net/sdzzboy/blog/164130

 

HBase以表的形式存储数据。与关系型数据库一样,在HBase中,表由行和列组成。

 

与关系型数据库不同的是,HBase还有“列簇”(column family)的概念。

一个表有若干“列簇”组成,每一个“列簇”包含若干列(column)。

与此同时,表中的每一个cell都是有时间戳的。

因此我们可以把其想象成一个三维数据库

除了行和列之外,还有一个时间维度,每一个单元格(cell)的不同版本都被保存。

 

与关系型数据库类似,在HBase中每一行都有一个主键(row key)。

HBase对于数据的检索都是通过row key进行的。

 

HBase对于数据的检索主要有三种方式:

1. 通过单个row key检索一行

 

2. 通过row key的范围[row key start,row key end]返回多条记录

 

3. 全表扫描,返回整个table

 

在HBase中,所有的行都按照row key进行排序

在物理上,

每一个table都会按照行划分成一个或者多个HRegion

一个HRegion包含了table的一部分,即若干行

HRegion 按大小分割的,每个表一开始只有一个 HRegion,

随着数据不断插入表, HRegion 不断增大, 当增大到一个阀值的时候, HRegion 就会等分会两个新的 HRegion

当 table 中的行不断增多,就会有越来越多的HRegion。

HRegion 是 Hbase 中分布式存储和负载均衡的最小单元

最小单元就表示不同的 HRegion 可以分布在不同的 HRegion server 上。但一个 HRegion 是不会拆分到多个server上的。

HRegion 虽然是分布式存储的最小单元,但并不是存储的最小单元

事实上,

HRegion 由一个或者多个 Store 组成

每个 store 保存一个 columns family

每个 Strore 又由一个 memStore 和0至多个 StoreFile 组成。

 StoreFile 以 HFile 格式保存在 HDFS 上

除了HFile之外,HRegion server还生成另外一个文件——HLog(WAL log),该文件是一个日志文件

WAL 意 为 Write ahead log,类似 于mysql中的 binlog,用来做灾难恢复使用。HLog 记录数据的所有变更

n(来自不同 table)的日志会混在一起。这样做的目的是不断追加单个文件相对于每个 HRegion Server 维护一个 Hlog,而不是每个HRegion 一个

这样不同Regio同时写多个文件而言,可以减少磁盘寻址次数,因此可以提高对 table 的写性能

带来的麻烦是,如果一台 region server 下线, 为了恢复其上的 region,需要将 region server 上的 log 进行拆分,

然后分发到其它 region server 上进行恢复。

 

技术分享

 

【转】HBase基本原理

标签:

原文地址:http://www.cnblogs.com/ihongyan/p/4722698.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!