HBase基础

一、概述

  • 1、HBase是一个领先的NoSQL数据库
    a)是一个面向列存储的数据库
    b)是一个分布式hash map
    c)基于Google Big Table论文
    d)使用HDFS作为存储并利用其可靠性
  • 2、HBase特点
    a)数据访问速度快,响应时间约2-20毫秒
    b)支持随机读写,每个节点20k~100k+ ops/s
    c)可扩展性,可扩展到20,000+节点

二、HBase发展历史

HBase基础

三、HBase应用场景

  • 1、信息交换-消息传递
    高容量,高速读写

  • 2、内容服务-Web后端应用程序
    高容量,高速读写

四、Apache HBase生态圈

HBase生态圈技术
1、Lily – 基于HBase的CRM
2、OpenTSDB – HBase面向时间序列数据管理
3、Kylin – HBase上的OLAP
4、Phoenix – SQL操作HBase工具
5、Splice Machine – 基于HBase的OLTP
6、Apache Tephra – HBase事务支持
7、TiDB – 分布式SQL DB
8、 Apache Omid - 优化事务管理
9、Yarn application timeline server v.2 迁移到HBase
10、Hive metadata存储可以迁移到HBase
11、Ambari Metrics Server将使用HBase做数据存储

五、HBase物理架构

概述

HBase采用Master/Slave架构

  • 1、HMaster
  • 2、RegionServer
  • 3、Zookeeper
  • 4、HBase Client
  • 5、Region
    HBase基础

HMaster

HMaster的作用

  • 1、是HBase集群的主节点,可以配置多个,用来实现HA
  • 2、管理和分配Region
  • 3、负责RegionServer的负载均衡
  • 4、发现失效的RegionServer并重新分配其上的Region

RegionServer

RegionServer负责管理维护Region

  • 1、一个RegionServer包含一个WAL、一个BlockCache (读缓存)和多个Region
  • 2、一个Region包含多个存储区,每个存储区对应一个列簇
  • 3、一个存储区由多个StoreFile和MemStore组成
  • 4、一个StoreFile对应于一个HFile和一个列簇
  • 5、HFile和WAL作为序列文件保存在HDFS上
  • 6、Client与RegionServer交互
    HBase基础

Region和Table

  • 1、单个Table(表)被分区成大小大致相同的Region
  • 2、Region是HBase集群分布数据的最小单位
  • 3、Region被分配给集群中的RegionServer
  • 4、一个Region只能分配给一个RegionServer
    HBase基础

HBase逻辑架构 - Row

  • 1、Rowkey(行键)是唯一的并已排序
  • 2、Schema可以定义何时插入记录
  • 3、每个Row都可以定义自己的列,即使其他Row不使用
    相关列定义为列族
  • 4、使用唯一时间戳维护多个Row版本
    在不同版本中值类型可以不同
  • 5、HBase数据全部以字节存储

HBase数据管理

  • 1、数据管理目录
    a)系统目录表hbase:meta
    存储元数据等
    b)HDFS目录中的文件
    c)Servers上的region实例
  • 2、HBase数据在HDFS上
    a)可以通过HDFS进行修复File
    b)修复路径
    RegionServer->Table->Region->RowKey->列簇
    HBase基础

HBase架构特点

  • 1、强一致性
  • 2、自动扩展
    a)当Region变大会自动分割 使
    b)用HDFS扩展数据并管理空间
  • 3、写恢复
    使用WAL(Write Ahead Log)
  • 4、与Hadoop集成

HBase Shell

HBase Shell是一种操作HBase的交互模式
支持完整的HBase命令集 HBase基础