Hbase-HBase简介
Posted duoduotouhenying
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hbase-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的。
以上是关于Hbase-HBase简介的主要内容,如果未能解决你的问题,请参考以下文章