首页 > 其他分享 >Hbase基础总结

Hbase基础总结

时间:2022-09-18 20:22:36浏览次数:80  
标签:总结 基础 --- RegionServer meta memstore 过滤器 Hbase hbase

HBase基础总结:

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

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

3、hbase的架构:

    主从架构 :

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

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

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

               Region:是数据文件的切片,横向切片的。一个Region中由多个Store(列簇) Store:列簇,都有一个memstore(基于内存的,数据会先写入到这里),

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

4、搭建

5、hbase shell DML create '表名','列簇名',...(表的必要选项是表名和列簇,可以没有列名) DDL put '表名','行键','列簇:列名','列值'(每一列多需要有一个put对象添加)

get :每一次获取一条数据 scan:每一次获取一批数据

6、过滤器:

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

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

     行键过滤器:

     列簇过滤器:

     列名过滤器:

     列值过滤器:

     专用过滤器:

     单列值过滤器:

     分页过滤器:

     包装过滤器:

     WhileMatchFilter 多级过滤器查询:

    FilterList

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

7、架构、读写流程

  读:

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

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

   3、根据meta表的内容找到所需数据所在的RegionServer的位置。 get: 获取到的是一个RS的地址 scan: 获取到的多个RS的地址

   4、去对应的RegionServer中找数据

   5、先去memstore中查找,如果找到就返回 再去blockcache中找,。。。。 再去storefile中找,。。。 再去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.6 0.94之前:可以手动调节阈值:hbase.hregion.max.filesize 0.94--2.0之前: 当前regionserver中的region个数^31282M 第一次分裂的阈值:1^31282M ...最后当分裂第四的时候:固定值,10G 2.0之后:256M-----10G

9、什么是Hbase的热点问题: 当插入数据的时候,大量的数据都会往一个RegionServer中插入数据,导致该RegionServer的压力过大,其他节点没有交互。 如何解决:建表的时候,进行预分区(设置切割点(针对rowkey来说的))

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

10T--->2G--->500M--->250M--->10M 机械磁盘:0.1s

                 固态硬盘:0.01s   配合布隆过滤器,内存缓冲机制,速度更快。

标签:总结,基础,---,RegionServer,meta,memstore,过滤器,Hbase,hbase
From: https://www.cnblogs.com/slm-1314521/p/16705650.html

相关文章