入门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 ,已经开源。指针

  • 图形数据库server

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

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。

系列传送门

相关文章
相关标签/搜索