大数据处理技术导论Task3笔记

第四章:HBase

HDFS可以用来存储海量数据,但顺序访问效率低;传统数据库可以随机访问,但不适合存储大量数据;因此HBase数据库应运而生。
数据结构分类

  • 结构化数据:以关系型数据库表形式管理的数据
  • 半结构化数据:具有非关系模型、基本固定结构模式的数据。比如日志、xml
  • 非结构化数据:没有固定模式的数据,如 word、pdf

HBase与传统数据库的区别

  • 数据类型是未被解释的字符串
  • 数据操作方面,HBase的很多数据是在一张表里,不用传统的连接方式
  • 存储模式:HBase采用物理列存储模式,关系型数据库是行存储。
  • 数据索引:HBase只支持行键索引,关系型数据库可以对不同的列做索引。
  • 数据维护:更新时,关系型数据库会把数据替换掉,Hbase会把旧版本的数据保留一段时间。
  • 可伸缩性:关系型数据库很难水平扩展,HBase是分布式集群,方便水平扩展。
    HBase的数据结构

定位使用四个值定位【行键,列族,列限定符,时间戳】
Hbase是行模式逻辑、列物理存储的数据库。

实现原理

HBase由连接客户端的库函数、一个master服务器和许多region服务器组成。
master维护数据存放信息,分配管理region和负载均衡;region负责实际的读写。
其中的一个表可以分为多个region。
为了定位region需要三层查询,zookeeper文件 -》-ROOT- -》 .META. -》 region。

  • zookeeper文件,记录了-root-的位置信息
  • root 只能又一个region存储,并且位置固定。
  • meta 可以又多个region存储,记录的是region服务器和region的对应关系,存储在内存中。

运行机制

Store是region运作的核心
参与要素:Store、MemStore、Hlog、StoreFile
写数据过程:先写入到MemStore和Hlog中,Hlog写完之后会通知客户端
读数据过程:先访问MemStore没有再从StoreFile中找。
缓存刷新过程:定期将MemStore数据写入StoreFile,记录Hlog,每次刷写都产生新的StoreFile
StoreFile维护过程:storefile数量太多会影响性能,可以将多个合并,也可以将一个大的进行region拆分。

性能优化

  • 行键:由于数据是按照行键排序的,可以将常用的数据放得更近一些。
  • 利用内存:创建表的时候可以将表放到region服务器的缓存中,提高缓存命中率
  • 按版本保留,设置保留数据最近的几个版本,太老的数据可以清理掉
  • 按时间保留,设置数据的最长存活时间,超出清理。
浙ICP备19012682号