zoukankan      html  css  js  c++  java
  • HBase

    一、基本介绍

      hbase是一个nosql的列式存储的数据库,实际来源于google发表的论文bigtable。构建于hdfs基础之上。

      提供高可靠性、高性能、列存储、可伸缩、实时读写nosql的数据库系统

      按照key-value的形式进行数据的存储:rowkey(行键),通过rowkey进行数据的检索

      hbase仅支持简单的事务(行级操作),不支持复杂的操作(b態进行join等操作)

      hbase的数据类型单一:byte[]

    二、特点

      大:数据量大

      面向列:数据按照列式的方式进行存储

      稀疏:hbase中null的数据不会占用存储空间

    三、HBase和hadoop的关系

      hbase和hadoop的关系:紧耦合关系。

      hdfs:

      不需要对HDFS上的文件进行随机读写

      优化一次写入,多次读取的方式

      hbase:

      1)提供列式的数据存储

      2)可以对数据进行随机读写

      3)按照key-value的形式操作数据(rowkey)

      4)支持mr,依赖hdfs

      5)优化多次读或写

    四、RDBMS与HBase的对比  

     Hbase:

     结构:

     1)数据库以region的形式存在

     2)支持hdfs

     3)使用WAL存储日志

     4)参考系统是zookeeper(耦合)

     5)使用rowkey

     6)支持分片

     7)使用行 列 列族(column family) 和单元格

      特征:

    1)海量存储:适合存储PB级别的数据。

    2)列式存储:数据按照列存储,再进一步,按照列族的形式存储。

    3)极易扩展:

      1)Regionserver:对于regionserver管理的扩展

      2)数据存储的扩展

    4)高并发:hbase的IO操作不会降低。

    5)稀疏:对于null的数据不进行存储。

    五、结构

     5.1 HMaster

     功能:

      1) 监控RegionServer

      2) 处理RegionServer故障转移

      3) 处理元数据的变更(元数据存储在hbase中)

      4) 处理region的分配或移除

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

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

     5.2RegionServer

     功能:

      1) 负责存储HBase的实际数据

      2) 处理分配给它的Region

      3) 刷新缓存到HDFS

      4) 维护HLog

      5) 执行压缩

      6) 负责处理Region分片

     5.3 相关组件

      1)WAL:用于恢复数据

      2)HFile:hbase数据的存储文件

      3)store:一个store对应一个column family

    4)memstore:缓存存储,默认大小128m

    5)region:一张表的部分数据或全部数据。

    六、HBase三个重要机制

    1.flush(刷盘)

     1.(hbase.regionserver.global.memstore.size)默认;堆大小的40%

     2.(hbase.hregion.memstore.flush.size)默认:128M

     3.(hbase.regionserver.optionalcacheflushinterval)默认:1h

     4.(hbase.regionserver.global.memstore.size.lower.limit)默认:堆大小 * 0.4

    • 0.95

     5.(hbase.hregion.preclose.flush.size)默认为:5M

     当一个 region 中的 memstore 的大小大于这个值的时候,我们又触发了region的 close时,会先运行“pre-flush”操作

     6.(hbase.hstore.compactionThreshold)默认:超过3个

    2.compact机制

    合并hfile主要有两种方式:

     1)minor:只用于进行数据的合并(merge)

     2)major:大合并,除了合并hfile之外,删除被标记的数据。

    3.split机制

    region的hfile达到默认10G的时候,进行split拆分。

    region也会一分为二,一个region管理一个hfile文件。

  • 相关阅读:
    P2018 消息传递[dp]
    P1436 棋盘分割[dp]
    一条线段引发的思考
    浅谈树上差分
    P2680 运输计划[二分+LCA+树上差分]
    P1600 天天爱跑步[桶+LCA+树上差分]
    P4560 [IOI2014]Wall 砖墙
    P1311 选择客栈[模拟]
    P1314 聪明的质监员[二分答案]
    Linux snmp导入MIB库
  • 原文地址:https://www.cnblogs.com/haojia/p/12386217.html
Copyright © 2011-2022 走看看