[Hbase]Hbase章1 Hbase框架及基本概念

Hbase框架介绍

HBase是一个分布式的、面向列的开源数据库。

不同点:

l  和一般的关系数据库不同,hbase是一个适合于非结构化数据存储的数据库。

l  Hbase是基于列而不是基于行的模式。

在分布式的生产环境中,HBase 需要运行在 HDFS 之上,以 HDFS 作为其基础的存储设施。HBase上层提供了访问的数据的 Java API 层,供应用访问存储在 HBase 的数据。在 HBase 的集群中主要由 Master 和 Region Server 组成,以及 Zookeeper,

基本概念:

l  RowKey

是Byte array,是表中每条记录的“主键”,方便快速查找,Rowkey的设计非常重要;

l  Timestamp

版本号,类型为Long,默认值是系统时间戳,可由用户自定义

l  ColumnFamily

列族,拥有一个名称(string),包含一个或者多个相关列

l  Column

属于某一个columnfamily,familyName:columnName,每条记录可动态添加

l  Value(Cell)

单元格由行键、列族、时间戳唯一决定

单元格的数据是没有类型的,全部以字节码形式存储

Hbase组成

l  Master

Hmaster用于调整多个regionServer,侦测各个regionServer之间的状态,并平衡regionServer之间的负载。Hmaster还有一个职责就是分配region给regionServer。

Hmaster允许多个Hmaster节点共存,但是这需要Zookeeper的协助。不过当多个Hmaster节点共存时,只有一个Hmaster是提供服务的,其它的Hmaster节点处于待命的状态。当正在工作的Hmaster节点宕机时,其它的Hmaster则会接管Hbase集群。

l  RegionServer

对于一个regionServer而言,其包括了多个region。regionServer的作用只是管理表格,以及实现读写操作。Client直接连接regionServer,并通信获取Hbase中的数据。

l  Region

Region是hbase中分布式存储和负载均衡的最小单位,但不是最小的存储单元。如个一个表格很大,并由多个CF组成时,那个表的数据将存放在多个region中,并且每个region会关联多个存储单元store。表在行方向分割为多个region,region是按大小分割的,随着region不断增大,当增大到一个阀值的时候,region就会分成两个region。

l  Store

每个region中包含了多个store对象,一个store包含一个memstore和若干个storefile,storefile中包含一个或多个hfile。Memstore存放在内存中,storefile存放在hdfs上。

l  Hfile

Hfile由很多个数据块(block)组成,并且有一个固定的结尾块。其中的数据块是由一个header和多个key-value的键值对组成。在结尾块中包含了数据相关的索引信息,系统也是通过结尾块的索引信息找到hfile中的数据。

猜你喜欢

转载自www.cnblogs.com/szss/p/10007570.html