入门Hadoop---Hbase是什么?

1.Hbase是什么?

Hbase属于NoSql的一种。 NoSql数据库分为如下几类:

  • Key-Value类型数据库

    这类数据库主要会使用到一个哈希表,这个表有一个特定的键和一个指针指向特定的数据。key/value模型对IT系统来说简单、易部署。但是对DBA只对部分值进行查询和更新的时候,key/value就显得效率低下了。举例如:Tokyo Cabinet,Redis,Voldemort,Oracle BDB。

  • 面向列的数据库

    这部分数据库用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向多个列。这些列由列家族来安排。如: Cassandra ,HBase,Riak。

  • 文档型数据库

    文档型数据库来自于Lotus Notes办公软件的,而且它同第一种键值存储类似。该类型的数据是版本化的文档,半结构化的文档以及特定的 格式存储,比如JSON。文档数据库可以看作是键值对数据库的升级版,允许之间嵌套值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB,MongoDb.国内也有文档型数据库 SequoiaDB ,已经开源。

  • 图形数据库

    图形结构的数据库同其它行列以及结构化的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要定制数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。 如:Neo4J, InfoGrid, Infinite Graph。

2.Hbase架构

Hbase依赖于MapReduce和HDFS,如下图所示:

从图中可以看到一个Region由多个Store组成,一个Store对应着一个列族(Column Family)。一个store包括位于磁盘的storefile和位于内存的memstore。写入数据的时候会先写入memstore,当超过一定阈值后,会写入storefile,当storefile达到一定数量后,会进行一次版本删除和合并工作,形成更大的storefile。当region中所有的storefile超过一定阈值后,region会分割成两个,由HRegionMaster分配到相应的region server服务器,实现负载均衡。

找数据的时候会先在memstore找,找不到再找filestore。

HRegion是实现负载均衡的最小单元,不同的HRegion可以分到不同的HRegion Server上。

StoreFile以HFile的格式保存在HDFS上。

HBase最重要的设计是RowKey,RowKey是一个列的唯一标识。

插入列的时候要指定列族和表名,列名不重要,它是伴随着数据插进去的。

timestamp用于标识我们的版本。

mapreduce负责高可用,存储region的API。

系列传送门

猜你喜欢

转载自www.cnblogs.com/shun7man/p/11880396.html
今日推荐