HBase基础总结:

1、什么是hbase: 是面向列,高可靠,高性能,可伸缩的分布式存储数据库

2、什么是列式存储:hbase可以看作一个大的HashMap,存取格式是由key-value的形式。四维定位到一个单元格 cell单元格(逻辑上的概念)

3、hbase的架构:

 :

主节点:HMaster负责与zookeeper以及与RegionServer保持心跳机制,维护整个集群的健康;

             合理的分配每一个regionsever上的region个数,保持负载均衡的状态。

 从节点:RegionServer,负责维护并管理自己的Region

Store:列簇,都有一个memstore(基于内存的,数据会先写入到这里),

                    当memstore达到100M的时候放入到blockcache中,当blockcache中的memstore达到85%的时候,触发flush机制,将数据写入(stroefile--->Hfile文件)到HDFS中。

4、搭建

5、hbase shell put '表名','行键','列簇:列名','列值'(每一列多需要有一个put对象添加)

scan:每一次获取一批数据

6、过滤器:

比较过滤器:(注意:过滤器中需要传入两个参数,分别是操作符和比较器)

比较器:二进制比较器,二进制前缀比较器,包含比较比较器,前缀比较器,正则比较器

行键过滤器:

列簇过滤器:

列名过滤器:

列值过滤器:

专用过滤器:

单列值过滤器:

分页过滤器:

包装过滤器:

多级过滤器查询:

    FilterList

布隆过滤器:减少查询的数据量。NONE,ROW,ROWCOL

7、架构、读写流程

 读:

1、客户端先于zookeeper发起请求建立连接(RPC的方式),获取hbase:meta表的位置(meta表也是存储在HDFS中)

2、去对应的RegionServer中找到该meta表

scan: 获取到的多个RS的地址

4、去对应的RegionServer中找数据

再去HFile中找,。。。。

 写:
    1、客户端先于zookeeper发起请求建立连接(RPC的方式),获取hbase:meta表的位置(meta表也是存储在HDFS中)
     2、去对应的RegionServer中找到该meta表
    3、根据meta表的内容找到所需Region所在的RegionServer的位置。
     4、与对应的RegionServer建立连接,开始传输数据
     5、先写入到WAL中,再往memstore中写,当memstore写满后,当memstore达到100M的时候放入到blockcache中,当blockcache中的memstore达到85%的时候,触发flush机制,将数据写入 (stroefile--->Hfile文件)到HDFS中。
  (注意:一个HFile文件被一个Region所管理)

8、分裂机制:1.4.61282M1282M 2.0之后:256M-----10G

9、什么是Hbase的热点问题: 如何解决:建表的时候,进行预分区(设置切割点(针对rowkey来说的))

10、为什么Hbase在海量数据中查询数据非常快?

机械磁盘:0.1s

 配合布隆过滤器,内存缓冲机制,速度更快。