美文网首页分布式存储HBASE
Hadoop生态架构之Hbase

Hadoop生态架构之Hbase

作者: 勇于自信 | 来源:发表于2019-11-17 16:33 被阅读0次
    1.Hbase定义

    HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现
    的编程语言为 Java。
    是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,因此可以容错地存
    储海量稀疏的数据。

    2.特性

    1.高可靠
    2.高并发读写
    3.面向列
    4.可伸缩
    5.易构建

    3.行存储 v s 列存储

    行存储
    优点:写入一次性完成,保持数据完整性
    缺点:数据读取过程中产生冗余数据,若有少量数据可以忽略
    列存储
    优点:读取过程,不会产生冗余数据,特别适合对数据完整性要求不高的大数据领域
    缺点:写入效率差,保证数据完整性方面差

    4.Hbase优势

    海量数据存储
    快速随机访问
    大量写操作的应用

    5.Hbase应用场景

    互联网搜索引擎数据存储
    海量数据写入
    消息中心
    内容服务系统(schema-free)
    大表复杂&多维度索引
    大批量数据读取

    6.Hbase数据模型

    例1:



    RowKey:是Byte array(以字节的方式存储,前后之间是按照顺序存储的,可以通过二分法检索),是表中每条记录的“主键”,方便快速查找, Rowkey的设计非常重要。
    Column Family:列族,拥有一个名称(string),包含一个或者多个相关列
    Column:属于某一个columnfamily, familyName:columnName,每条记录可动态添加
    Version Number:类型为Long,默认值是系统时间戳,可由用户自定义
    Value(Cell): Byte array
    例2:



    为了检索快速,体现了一个三维有序的特点:
    三维:1.rowkey 2.列族 3.version

    举例:


    {rowkey => {family => {qualifier => {version => value}}}}
    a:cf1:bar:1368394583:7
    a:cf1:foo:1368394261:hello
    一维:a
    二维:cf1:bar和cf1:foo
    三维:1368394583和1368394261
    前两维按顺序排列,时间戳按倒序排列
    上表在传统数据库的形式如下:


    7.Hbase物理模型

    1.Hbase一张表由一个或多个Hregion(分区或区域)组成
    2.记录之间按照Row Key的字典序排列
    region举例:


    3.Region特点:
    1)Region是Hbase中分布式存储和负载均衡的最小单元,最小单元就表示不同的Hregion可以分布在不同的
    HRegion server上。
    2)Region按大小分割的,每个表一开始只有一个region,随着数据不断插入表, region不断增大,当增大到一个阀值(默认10G)的时候, Hregion就会等分会两个新的Hregion。当table中的行不断增多,就会有越来越多Hregion。
    3).同一张表的两个不同的Region可能在同一台机器上,也可能在不同的机器上,如下图:

    3.regionserver:
    region所在的那台机器,这个机器就是regionserver,机器上的进程就是HRegionServer
    regionserver的作用:
    主要负责用户的io请求(读和写),regionserver提供一个入口,供客户端来对hdfs的一个交互
    进程
    HRegionServer的作用:HRegionServer内部管理了一系列Hregion对象
    4.Hbase物理模型
    (1)Hbase里的一张表叫Htable
    (2)按RowKey范围分的Region-> HRegion ->Region Servers
    (3)HRegion按列族(Column Family) ->多个HStore(一个Column Family就被分为一个HStore(文件))
    (4)HStore -> memstore(默认128M) + HFiles(均为有序的KV)
    (5)HFiles -> HDFS
    一个HRegion结构如下图:

    HRegionServer上的HRegion存储结构如下图:
    8.Hbase系统架构

    1.Client:访问Hbase的接口,并维护Cache加速Region Server的访问
    2.HMaster(主):
    1.负载均衡,分配Region到RegionServer
    2.DDL:增删改-->table,cf,namespace
    3.类似于namenode,管理一些table元数据
    4.ACL权限控制
    功能:
    3.HRegionServer(从):
    1.管理和存放本地的HRegion
    2.读写HDFS,提供IO操作
    3.本地化:HRegion的数据尽量和数据所属的DataNode在一块。但是这个本地化不能够总满足和实现
    4.Zookeeper:
    保证集群中只有一个Master
    存储所有Region的入口(ROOT)地址
    实时监控Region Server的上下线信息,并通知Master
    系统架构图:



    9.Hbase的容错

    1.Master容错:
    Zookeeper重新选择一个新的Master
    无Master过程中,数据读取仍照常进行;
    无master过程中, region切分、负载均衡等无法进行
    2.Region Server容错:
    定时向Zookeeper汇报心跳,如果一旦时间内未出现心跳, Master将该RegionServer上的
    Region重新分配到其他RegionServer上,失效服务器上“预写”日志由主服务器进行分割
    并派送给新的RegionServer
    3.Zookeeper容错:
    Zookeeper是一个可靠地服务,一般配置3或5个Zookeeper实例

    相关文章

      网友评论

        本文标题:Hadoop生态架构之Hbase

        本文链接:https://www.haomeiwen.com/subject/flvpictx.html