> 文章列表 > Hbase 介绍

Hbase 介绍

Hbase 介绍

Hbase 简介

        Hbase 是一个开源非关系型分布式数据库,运用于HDFS文件系统之上,可以容错地存储海量稀疏的数据。Hbase是一个高可靠高性能面向列可伸缩实时读写的分布式数据库,主要用来存储非结构化和半结构化的松散数据 

        Hbase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。

重点:

Hbase 是基于存储的,主要用来存储非结构化和半结构化的松散数据,适合大数据的实时查询;

利用HDFS作可靠的底层文件存储系统

利用MapReduce高性能的处理Hbase中的海量数据

利用Zookeeper作为其分布式协同服务稳定服务Failover(故障转移)机制

Hbase 特点

1. Hbase 有四个维度来确定某个具体的值,行间,列族,列名 ,时间戳

2. 强一致性

3. 多维稀疏列表

4. 稀疏多维排序map

        BigTable 本质上是一个Map结构数据库,Hbase亦然,也是由一系列的KV构成的。然而Hbase这个Map系统却有很多的限定词--稀疏的分布式的排序的持久的多维的。Hbase Map和普通的Map 不一样,Hbase Map的Key是复合键,由rowKey,column family,qualif ier,type 以及timestamp组成,value即为cell的值。

        下面我们来介绍一下 多维、稀疏、排序等关键词:

          (1)多维:这个特征比较容易理解。Hbase中Map与普通的Map最大的不同在于,key是一个复合数据结构,由多维元素构成,包括rowkey,columnfamily,qualifier,type以及timestamp

 

          (2)稀疏:稀疏性是Hbase一个突出的特点。从上面这个图可以看出一行上是有空值。在其他的数据库中,会对这些空值进行null的填充,而对于Hbase,空值是不需要进行任何填充。这个特性很重要,因为Hbase的理论上是可以无限扩展的,对于成百万列的表来说,进行填充null的策略,势必会导致造成大量空间浪费。因此稀疏性是Hbase的可以无限拓展重要条件

          (3)排序:构成Hbase的KV在同一个文件中都是有序的,但规则并不是仅仅按照rowkey排序,而是按照KV中的key进行排序--先比较rowkey小的在前,rowkey相同在比较column,即column family:qualifier小在前column还相同,再比较timestamp,即版本信息,timestamp的排在前面

          (4)分布式:很容易理解,构成Hbase的所有Map并不集中在某台机器上,而是分布整个集群中。

5. HDFS压缩存储

6. 自动水平扩展

7.服务器自动调整平衡

Hbase 架构各个角色的功能

一.Client

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

二.Zookeeper

        Hbase通过Zookeeper来做master高可用,regionServer的监控,元数据的入口以及集群

配置的维护。具体如下

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

                2.通过Zookeeper来监控RegionServer的状态,当RegionServer有异常的时候,通过回调的形式通知Master RegionServer上下限的信息;

                3.通过Zookeeper存储元数据的统一入口地址;

三.Hmaster

        master结点主要职责如下:

                1.为RegionServer分配Region

                2.管理整个集群的负载均衡

                3.管理集群的元数据信息

                4.当发现失效的Region,并将失效的Region分配到正常的RegionServer

                5.放RegionServer失效的时候,协对应的Hlog进行拆分

四.HregionServer

        HregionServer直接对接用户的读写请求,“干活”节点。功能如下:

                1.管理master为其分配的Region

                2.处理来自客户端的读写请求

                3.负责和底层HDFS交换,存储数据到HDFS

                4.负责Region变大以后的拆分

                5.负责Storefile的合并工作

五.HDFS

        HDFS为Hbase提供最终的底层存储服务,同时提供了Hbase高可用,功能如下:

                1.提供元数据和表数据的底层分布式存储服务

                2.数据多副本,保证的高可靠和高可用性