HBase基础

HBase

1. 概念

  • 建立在HDFS上,提供高可靠性、高性能、列存储、可伸缩、实时读写 的分布式数据库系统
  • 在需要实时读写随机访问超大规模数据集时,可以使用HBase

2. HBase特点

  • 海量存储
    • 可以存储大批量数据
  • 列式存储
    • HBase表的数据是基于列族进行存储的,列族是在列的方向上进行存储
  • 极易扩展
    • 底层依赖HDFS,当磁盘空间不足时,只需动态增加datanode结点就可
    • 可以通过服务器来对集群的存储进行扩容
  • 高并发
    • 支持高并发读写请求
  • 稀疏
    • 系统主要是针对HBase列的灵活性,在列族中,可以指定任意列,在列数据为空的情况下,不会占用存储空间
  • 数据的多个版本
    • HBase表的数据可以有多个版本值,默认情况下是根据版本号去区分,版本号就是插入数据的时间戳
  • 数据类型单一
    • 所有的数据在HBase中是以字节数据进行存储

3. HBase数据类型

  • rowKey 行键,table按照rowKey的字典序进行排序
  • Column Family 列族
    • HBase表中每列都归属于某个列族
  • Column列
    • 列是列族下的一个列,用列族名:列名,表示为info:name
  • cell单元格
    • 指定row key行键、列族、列,可以确定一个cell单元格
    • cell中的数据是没有类型的,全部是以字节数组存储
  • TimeStamp 时间戳
    • 可以对表中的cell多次赋值,每次赋值操作时时间戳,可看做cell值的版本号,一个cell可以有多个版本值

4. HBase整体架构

HBase基础_第1张图片

  • client客户端是操作HBase集群的入口
    • 对管理类的操作,如表的增删改操作,Client通过RPC和HMaster通信完成
    • 对表数据的读写操作,Client通过RPC和RegionServer交互,读写数据
  • Client类型
    • HBase shell
    • Java编程接口
    • Thrift、Avro、Rest等
  • ZooKeeper集群
    • 实现了HMaster的高可用,多HMaster间进行主备选举
    • 保存了HBase的源信息meta表,提供了HBase表中region的寻址入口
    • 对HMaster和HRegionServer实现了监控
  • HMaster
    • HBase集群也是主从架构,HMaster是主的角色
    • 主要负责Table表和Region的相关管理工作
    • 关于Table
      • 管理Client对table的增删改操作
      • 关于Region
        • 在Region分裂后,负责新Region分配到指定的HRegionServer上
        • 管理HRegionServer间的负责均衡,迁移region分布
        • 当HRegionServer宕机之后,负责其上的region的迁移
  • HRegionServer
    • HBase集群中从的角色
    • 作用
      • 响应客户端的读写数据请求
      • 负责管理一系列的Region
      • 切分在运行过程中变大的Region
  • Region
    • HBase集群中分布式存储的最小单元
    • 一个Region对应一个Table表中的部分数据

你可能感兴趣的:(大数据,hbase)