• Hbase(2)-HBase简介


    一. HBase的特点

    1. 海量存储

    Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与Hbase的极易扩展性息息相关。正式因为Hbase良好的扩展性,才为海量数据的存储提供了便利。

    2. 列式存储

    这里的列式存储其实说的是列族存储,Hbase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。

    HBase的面向列存储,有利于分析

    MySQL关系型数据库,面向行存储,有利于查询

    3. 易扩展

    Hbase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。
    通过横向添加RegionSever的机器,进行水平扩展,提升Hbase上层的处理能力,提升Hbsae服务更多Region的能力。

    4. 稀疏

    稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。

    密集表 : 数据密集存储,即是没有值也要分配存储空间

    稀疏表 : 如果数据没有值,就不进行存储,可以有效的利用空间 

    二. 架构图

    1. Client 

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

    2. Zookeeper

    HBase通过Zookeeper来做master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。具体工作如下:

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

    通过Zoopkeeper来监控RegionServer的状态,当RegionSevrer有异常的时候,通过回调的形式通知Master RegionServer上下线的信息

    通过Zoopkeeper存储元数据的统一入口地址

    3. HMaster

    1) . 监控RegionServer

    2) . 处理RegionServer故障转移

    3) . 处理元数据的变更

    4) . 处理region的分配或转移

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

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

    4. HregionServer

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

    2) . 处理分配给它的Region

    3) . 刷新缓存到HDFS

    4) . 维护Hlog

    5) . 执行压缩

    6) . 负责处理Region分片

    5. HDFS

    HDFS为Hbase提供最终的底层数据存储服务,同时为HBase提供高可用(Hlog存储在HDFS)的支持,具体功能概括如下:
    提供元数据和表数据的底层分布式存储服务
    数据多副本,保证的高可靠和高可用性

    6 . HLog(Write-Ahead Logs)

    HBase的修改记录,当对HBase读写数据的时候,数据不是直接写进磁盘,它会在内存中保留一段时间(时间以及数据量阈值可以设定)。但把数据保存在内存中可能有更高的概率引起数据丢失,为了解决这个问题,数据会先写在一个叫做Write-Ahead logfile的文件中,然后再写入内存中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。

    7 . Region

    Hbase表的分片,HBase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有多个不同的region。

    8 . Store

    HFile存储在Store中,一个Store对应HBase表中的一个列族(列簇, Column Family)。

    9 . HFile

    这是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。StoreFile是以Hfile的形式存储在HDFS的。

  • 相关阅读:
    UVA 1386
    疯狂Android演讲2 环境配置
    七内部排序算法汇总(插入排序、Shell排序、冒泡排序、请选择类别、、高速分拣合并排序、堆排序)
    【iOS发展-44】通过案例谈iOS重构:合并、格式化输出、宏观变量、使用数组来存储数据字典,而且使用plist最终的知识
    jQuery选择
    一个月操作总结
    C++易vector
    oracle rac 在完成安装错误。
    NginX issues HTTP 499 error after 60 seconds despite config. (PHP and AWS)
    解决Eclipse中文乱码的方法
  • 原文地址:https://www.cnblogs.com/duoduotouhenying/p/10234904.html
Copyright © 2020-2023  润新知