HBase的使用

前言

HBase是一个高可靠,高性能,面向列,可伸缩的分布式存储系统,适用于结构化的存储,底层依赖于Hadoop的HDSF,利用HBase能够在廉价PC server上搭建起大规模结构化存储集群。HBase被普遍应用于大数据存储解决方案中。架构

HBase 特色

HBase优势:并发

  • 列能够动态增长,列为空不会存储数据,节省存储空间
  • 自动切分数据,是的数据存储具备水平扩展性
  • 能够提供高并发读写操做的支持

HBase缺点:分布式

  • 不支持条件查询,只支持按照Row Key来查询
  • 不适合传统的事务处理或关联分析,不支持复杂查询

若是应用中的数据每行结构都有差异,能够适用于HBase存储松散数据。能够动态增长列,若是列为空不会存储数据,若是提供的数据存在一个主键,能够依靠HBase的rowkey提供高效查询。高并发

HBase使用场景

卖家操做日志oop

用来记录商家操做的日志系统,保证商家能够精确查询本身各类操做。卖家无时无刻再也不操做,因此卖家操做日志具备数据量大,实时性强,增多查少特色。 性能

最初的设计是将操做日志放到ES中,操做日志数据量大,当时ES资源有限,因此将最近三个月的数据存储到ES中,而长期数据存储使用HBase进行。大数据

消息日志存储设计

消息日志用来进行全链路追踪及消息的统计分析,天天有几千万消息量。消息追踪要求实时性,多维度精确查询,将最近一周消息日志存储在ES中,在按期将HBase中数据倒入数据集市中,方便对消息进行统计分析。日志

HBase架构

Masterserver

Master用于协调多个Region Server,监测各个Region Server之间的状态,平衡Region Server之间负载。Master还负责分配Region给Region Server。容许多个Master节点工程,须要借助ZK。多个Master节点共存时,只有一个Master是提供服务的,其余Master节点处于待命状态,当正在工做的Master节点宕机,其余Master会接管HBase的集群。

Region Server

一个Region Server中包括多个Region,Region Server做用是管理表格,实现读写操做。Client直接链接Region Server,通讯获取HBase中的数据。Region则是真实存放HBase数据的地方,Region是HBase的可用性和分布式的基本单位。若是一个表格很是大,由多个CF组成时,表的数据将存放在多个Region之间,并在每一个Region中会关联多个存储单元(Store)。

ZK

ZK做为HBase Master的HA解决方案,ZK保证了至少只有一个HBase Master处于运行状态。ZK负责Region和Region Server的注册。

基本原理

HBase经过ZK进行机器之间的协调,Master和Region Server之间的关系经过ZK协调维护。当Client须要访问HBase集群时,client须要先和zk通讯,找到对应的Region Server。每一个region server管理多个region。

每一个region都只存储一个column family数据,该CF中的一段(按照Row的区间分红多个region)。region能存储数据的大小是有上限的,达到上限时,region会进行分裂。数据会分裂到多个region中,这样便于提升数据并行化,提升数据容量。

每一个region包含多个store对象,每一个sotre包含一个memstore,和一个或多个hfile。 memsotre是数据在内存中的实体,通常是有序存储的,数据向region写时,先写入memsotre,当memstore中数据须要向底层文件系统Dump时,sotre会建立storefile,sotrefile是对hfile的封装。因此memstore中数据最终会写入到hfile中,就是磁盘io。因为HBase底层依靠hdfs,hfile都存储在hdfs上。

相关文章
相关标签/搜索