• HBase


    1.HBase是什么

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

    HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到这些这些数据 存储文件夹的结构,还可以通过Map/Reduce的框架(算法)对HBase进行操作,如下图所示:

    HBase在产品中还包含了Jetty,在HBase启动时采用嵌入式的方式来启动Jetty,因此可以通过web界面对HBase进行管理和查看当前运行的一些状态,非常轻巧。

    2.HBase数据模型

    下面分别说说几个关键概念:

    1)行键(RowKey)
       行键是字节数组, 任何字符串都可以作为行键;
        表中的行根据行键进行排序,数据按照Row key的字节序(byte order)排序存储;
      所有对表的访问都要通过行键 (单个RowKey访问,或RowKey范围访问,或全表扫描)
    2)时间戳(TimeStamp)
      每个Cell可能又多个版本,它们之间用时间戳区分
    3)列族(ColumnFamily)
      CF必须在表定义时给出
      每个CF可以有一个或多个列成员(ColumnQualifier),列成员不需要在表定义时给出,新的列族成员可以随后按需、动态加入
      数据按CF分开存储,HBase所谓的列式存储就是根据CF分开存储(每个CF对应一个Store),这种设计非常适合于数据分析的情形
    4)单元格(Cell)
      Cell 由行键,列族,限定符,时间戳唯一决定
      Cell中的数据是没有类型的,全部以字节码形式存贮
    5)区域(Region)
        HBase自动把表水平(按Row)划分成多个区域(region),每个region会保存一个表里面某段连续的数据;
      每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region;
      当table中的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Region 上。
      HRegion是HBase中分布式存储和负载均衡的最小单元。最小单元表示不同的HRegion可以分布在不同的HRegionServer上。但一个HRegion不会拆分到多个server上。

    3.HBase物理模型

      每个column family存储在HDFS上的一个单独文件中,空值不会被保存。
      Key 和 Version number(即时间戳,timestamp)在每个 column family中均有一份;
      HBase 为每个值维护了多级索引,即:<key, column family, column name, timestamp>

    物理存储:

    1、Table中所有行都按照row key的字典序排列;
    2、Table在行的方向上分割为多个Region;
    3、Region按大小分割的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region,之后会有越来越多的region;
    4、Region是Hbase中分布式存储和负载均衡的最小单元,不同Region分布到不同RegionServer上。

    5、Region虽然是分布式存储的最小单元,但并不是存储的最小单元。Region由一个或者多个Store组成,每个store保存一个columns family;每个Strore又由一个memStore和0至多个StoreFile组成,StoreFile包含HFile;memStore存储在内存中,StoreFile存储在HDFS上。

  • 相关阅读:
    sh_09_字典的定义
    sh_08_格式化字符串
    sh_07_元组遍历
    sh_06_元组基本使用
    sh_05_列表遍历
    sh_04_列表排序
    sh_03_列表的数据统计
    图片懒加载
    UA池和ip代理池
    爬虫篇 --- 分布式爬虫
  • 原文地址:https://www.cnblogs.com/gy19920604/p/5628860.html
Copyright © 2020-2023  润新知