HBase笔记-1.基本介绍

HBase简介

  •  HBase-Hadoop Database,是一个提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。
  •  利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用zookeeper作为其分布式协同服务。
  •  主要用来存储结构化和半结构化的数据(列存NOSQL数据库)

 HBase数据模型

HBase笔记-1.基本介绍HBase笔记-1.基本介绍

 ROWKEY

  •  决定一行数据
  •  按照字典顺序排序
  •  ROWKEY只能存储64k的字节数据

Column Family列族和qualifier列

  •  HBase中的每个列都归属于某个列,列族必须作为表模式(schema)定义的一部分预先给出。如create 'test','course';
  •  列名以列族作为前缀,每个列族都可以以有多个列成员(column);course:math,course:english,新的列族成员(列)可以随后按需动态加入。
  •  权限控制、存储以及调优都是在列族层面进行的。
  •  HBase把同一列族里的数据放在同一个目录下,有几个文件保存。

Timestamp时间戳

  •  在HBase中每个cell存储单元对同一份数据有多个版本,根据唯一的时间戳来区分每个版本的差异,不同版本的数据按照时间倒序排序,最新的数据版本排在最前面。
  •  时间戳是64整型
  •  时间戳可以由HBase赋值,此时时间戳是精确到毫秒的当前系统时间。
  •  时间戳也可以由客户显式赋值,如果应用程序要避免版本冲突,就必须自己生成具有唯一的时间戳。

cell单元格

  •  由行和列的坐标交叉决定
  •  单元格都是有版本的
  •  单元格的内容都是未解析的字节数组
  •  由{ rowkey  ,  column(=<family>+<qualifier>)  ,  version} 唯一确定的单元格。

HLog

  •  hbase在写入数据之前会先写入MemStore,成功了再写入HLog,当MemStore的数据丢失的时候,还可以用HLog的数据来进行恢复
  •  HLogKey的五要素,region、tableName、log的顺序、写入时间戳、集群id

HBase体系架构

HBase笔记-1.基本介绍
HBase笔记-1.基本介绍

Client

 包含访问HBase的接口并维护cache来加快HBase的访问

Zookeeper

 HBase笔记-1.基本介绍

  •  保证任何时候,集群中只有一个master
  •  存储所有region的寻址入口
  •  实时监控regionserver的上线和下线信息。并实时通知Master
  •  存储HBase的schema和table的元数据

HMaster

 HBase笔记-1.基本介绍

  •  管理HRegionServer,实现其负载均衡。
  •  管理和分配HRegion,比如在HRegion split时分配新的HRegion;在HRegionServer退出时迁移其内的HRegion到其他HRegionServer上。
  •  实现DDL操作(Data Definition Language,namespace和table的增删改,column familiy的增删改等)。
  •  管理namespace和table的元数据(实际存储在HDFS上)。
  •  权限控制(ACL)。

HRegionServer

 HBase笔记-1.基本介绍

  •  存放和管理本地HRegion。
  •  读写HDFS,管理Table中的数据。
  •  Client直接通过HRegionServer读写数据(从HMaster中获取元数据,找到RowKey所在的HRegion/HRegionServer后)。
  •  负责切分在运行过程中变得过大的region

HRegion

 HBase笔记-1.基本介绍

  •  HBase使用RowKey将表水平切割成多个HRegion,从HMaster的角度,每个HRegion都纪录了它的StartKey和EndKey(第一个HRegion的StartKey为空,最后一个HRegion的EndKey为空),由于RowKey是排序的,因而Client可以通过HMaster快速的定位每个RowKey在哪个HRegion中。
  •  HRegion由HMaster分配到相应的HRegionServer中,然后由HRegionServer负责HRegion的启动和管理,和Client的通信,负责数据的读(使用HDFS)。每个HRegionServer可以同时管理1000个左右的HRegion

Memstore与soterFile(HFile)

 HBase笔记-1.基本介绍

  •  一个regoin由多个store组成,一个store对应一个CF(columnfamily)
  •  store包括内存中的memstore和位于磁盘中的storefile,写操作先写进memstore,当memstore中的数据达到某个阀值,HRegionserver会启动flashcache进程写入到storefile,每次写入形成一个单独的storefile。
  •  当storefile数量到达一定阀值后,系统会进行合并,在合并过程中会进行版本合并和删除工作,形成更大的storefile
  •  当Region所有storefile的大小和超过一定的阀值后,会把当前的Region分割位两个,并有HMaster分配到相应的Regionserver服务器中,实现负责均衡。
  •  客户端检索数据先在memstore中找,再到storefile中找。