HBase 简介

HBase 简介

什么是Hbase

Google曾经发表过三篇论文:
1. GFS:Google File System --> HDFS
对数据进行分布式文件系统的存储,解决的大数据的存储问题;
2. MapReduce --> Yarn
最初是因为Google要去爬取全球的网页然后对其进行排名(PageRank)而衍生出的问题,一种用于大数据计算的模型,核心思想是大事化小处理,最后在合并结果,先拆分再合并;
3. BigTable --> HBase
采用NoSQL数据库将数据存在一张大表之中,通过牺牲存储的空间来换取性能.

可以看出 HBase 的原型就是 BigTable 论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储。
官方网站:http://hbase.apache.org
– 2006年Google发表BigTable白皮书
– 2006年开始开发HBase
– 2008年北京成功开奥运会,程序员默默地将HBase弄成了Hadoop的子项目
– 2010年HBase成为Apache顶级项目
– 现在很多公司二次开发出了很多发行版本,你也开始使用了。

HBase

HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统色,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase 特点

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

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

  3. 极易扩展
    Hbase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。
    通过横向添加RegionSever的机器,进行水平扩展,提升Hbase上层的处理能力,提升Hbsae服务更多Region的能力。
    备注:RegionServer的作用是管理region、承接业务的访问,这个后面会详细的介绍通过横向添加Datanode的机器,进行存储层扩容,提升Hbase的数据存储能力和提升后端存储的读写能力。

  4. 高并发(多核)
    由于目前大部分使用Hbase的架构,都是采用的廉价PC,因此单个IO的延迟其实并不小,一般在几十到上百ms之间。这里说的高并发,主要是在并发的情况下,Hbase的单个IO延迟下降并不多。能获得高并发、低延迟的服务。

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

HBase 架构

Hbase架构图:

从图中可以看出Hbase是由Client、Zookeeper、Master、HRegionServer、HDFS等几个组件组成,下面来介绍一下几个组件的相关功能:

  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(NameNode)

    ​ master节点的主要职责如下:
    ​ * 为RegionServer分配Region
    ​ * 维护整个集群的负载均衡
    ​ * 维护集群的元数据信息
    ​ * 发现失效的Region,并将失效的Region分配到正常的RegionServer上
    ​ * 当RegionSever失效的时候,协调对应Hlog的拆分

  4. HregionServer(DataNode)

    HregionServer直接对接用户的读写请求**,是真正的“干活”的节点。它的功能概括如下:
    ​ * 管理master为其分配的Region
    * 处理来自客户端的读写请求
    * 负责和底层HDFS的交互,存储数据到HDFS
    * 负责Region变大以后的拆分
    * 负责Storefile的合并工作

  5. HDFS

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

    HBase中的角色

HMaster

功能

  1. 监控RegionServer

  2. 处理RegionServer故障转移

  3. 处理元数据的变更

  4. 处理region的分配或转移

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

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

RegionServer

功能

  1. 负责存储HBase的实际数据
  2. 处理分配给它的Region
  3. 刷新缓存到HDFS
  4. 维护Hlog
  5. 执行压缩
  6. 负责处理Region分片

其他组件

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

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

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

  4. MemStore
    顾名思义,就是内存存储,位于内存中,用来保存当前的数据操作,所以当数据保存在WAL中之后,RegsionServer会在内存中存储键值对。

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


查看更多:http://www.coffeecode.codes/








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值