Hbase(2)-HBase简介

一. HBase的特点

1. 海量存储

Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与Hbase的极易扩展性息息相关。正式因为Hbase良好的扩展性,才为海量数据的存储提供了便利。

2. 列式存储

这里的列式存储其实说的是列族存储,Hbase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。

HBase的面向列存储,有利于分析

MySQL关系型数据库,面向行存储,有利于查询

3. 易扩展

Hbase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。
通过横向添加RegionSever的机器,进行水平扩展,提升Hbase上层的处理能力,提升Hbsae服务更多Region的能力。

4. 稀疏

稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。

密集表 : 数据密集存储,即是没有值也要分配存储空间

稀疏表 : 如果数据没有值,就不进行存储,可以有效的利用空间 

 

二. 架构图

 

1. Client 

Client包含了访问Hbase的接口,另外Client还维护了对应的cache来加速Hbase的访问,比如cache的.META.元数据的信息。

2. Zookeeper

HBase通过Zookeeper来做master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。具体工作如下:

通过Zoopkeeper来保证集群中只有1个master在运行,如果master异常,会通过竞争机制产生新的master提供服务

通过Zoopkeeper来监控RegionServer的状态,当RegionSevrer有异常的时候,通过回调的形式通知Master RegionServer上下线的信息

通过Zoopkeeper存储元数据的统一入口地址

3. HMaster

1) . 监控RegionServer

2) . 处理RegionServer故障转移

3) . 处理元数据的变更

4) . 处理region的分配或转移

5) . 在空闲时间进行数据的负载均衡

6) . 通过Zookeeper发布自己的位置给客户端

4. HregionServer

1) . 负责存储HBase的实际数据

2) . 处理分配给它的Region

3) . 刷新缓存到HDFS

4) . 维护Hlog

5) . 执行压缩

6) . 负责处理Region分片

5. HDFS

HDFS为Hbase提供最终的底层数据存储服务,同时为HBase提供高可用(Hlog存储在HDFS)的支持,具体功能概括如下:
提供元数据和表数据的底层分布式存储服务
数据多副本,保证的高可靠和高可用性

6 . HLog(Write-Ahead Logs)

HBase的修改记录,当对HBase读写数据的时候,数据不是直接写进磁盘,它会在内存中保留一段时间(时间以及数据量阈值可以设定)。但把数据保存在内存中可能有更高的概率引起数据丢失,为了解决这个问题,数据会先写在一个叫做Write-Ahead logfile的文件中,然后再写入内存中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。

7 . Region

Hbase表的分片,HBase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有多个不同的region。

8 . Store

HFile存储在Store中,一个Store对应HBase表中的一个列族(列簇, Column Family)。

9 . HFile

这是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。StoreFile是以Hfile的形式存储在HDFS的。

posted on 2019-01-07 18:33  nt杨  阅读(214)  评论(0编辑  收藏  举报

导航