Hadoop学习系列笔记(七):关于HBase

HBase是一个在HDFS上开发的面向列分布式数据库,适合实时随机访问超大规模数据集。

HBase自底向上进行构建,能够简单地通过增加节点来达到线性扩展。HBase不是关系型数据库不支持SQL

概念:

应用把数据存放在带标签的表中,表由行和列组合成能单元格数据的插入时间戳为数据的版本。行的键和单元格内容是字节数组(字符串)。表中的行根据行的键值进行排序,所有对表的访问都要通过表的主键。行中的列被分为了“列族”,同一个列族的所有成员具有相同的前缀。物理上,所有的列族成员都一起存放在文件系统中,所以更准确的说法是HBase是一个面向列族的存储器。

HBase自动把表划分成大小基本相同的“区域”,每个区域由表中行的子集构成。随着表变大,区域的个数也会增加。区域是在HBase集群上分布数据的最小单位。用这种方式,一个因为太大而无法放在单台服务器上的表会被放到服务器集群上,其中每个节点都负责管理表所有区域的一个子集。表的加载也是使用这种方法把数据分布到各个节点。在线的所有区域按次序排列就构成了表的所有内容。

HDFSMapReduce客户端从属机slave)和协调主控机master)(即HDFSnamenodedatanodeMapReducejobtrackertasktracker)组成,HBase也采用相同的模型,用一个master节点协调管理一个或多个regionserver从属机。

 

HBase主控机把区域分配给注册的regionserver,恢复regionserver的故障。regionserver负责零个或者多个区域的管理响应客户端的读写请求,还负责区域的划分并通知HBase master有了新的子区域,这样主控机就可以把父区域设为离线,并用子区域替换父区域。HBase依赖于ZooKeeper


相关博文:

编程实战理解Hbase:图文结合

Hbase系列总结:HBase系列博文

Hbase基本操作:怎删改查