Apache HBase介绍

2022-04-27 00:00:00 数据 简单 实体 结构化 海量

超级详细,且行文结构很好的文章

一条数据的HBase之旅,简明HBase入门教程-开篇
Hbase技术详细学习笔记

1、简介

Apache HBase是基于Hadoop构建的一个分布式的、可伸缩的海量数据存储系统,其底层用HDFS实现数据存储

HDFS介绍

1. HBase中的数据为何不直接存放于HDFS之上?
HBase中存储的海量数据记录,通常在几百Bytes到KB级别,如果将这些数据直接存储于HDFS之上,会导致大量的小文件产生为HDFS的元数据管理节点(NameNode)带来沉重的压力

HBase常被用来存放一些海量的(通常在TB级别以上)结构比较简单的数据,如历史订单记录,日志数据,监控Metris数据等等,HBase提供了简单的基于Key值的快速查询能力。

NoSQL领域,数据表的模样却往往换成了另外一种"画风",这些"杂乱无章"的列所构成的多行数据,被称之为一个"稀疏矩阵",而上图中的每一个"黑块块",在HBase中称之为一个KeyValue。

2、适用场景

1. 什么样的数据适合用HBase来存储?

HBase的数据模型比较简单,数据按照RowKey排序存放,适合HBase存储的数据,可以简单总结如下:

  • 以实体为中心的数据
    实体可以包括但不限于如下几种:描述这些实体的,可以有基础属性信息、实体关系(图数据)、所发生的事件(如交易记录、车辆轨迹点)等等。

    • 自然人/账户/手机号/车辆相关数据
    • 用户画像数据(含标签类数据)
    • 图数据(关系类数据)
  • 以事件为中心的数据

    • 监控数据
    • 时序数据
    • 实时位置类数据
    • 消息/日志类数据

上面所描述的这些数据,有的是结构化数据,有的是半结构化或非结构化数据。

HBase的“稀疏矩阵”设计,使其应对非结构化数据存储时能够得心应手,但在我们的实际用户场景中,结构化数据存储依然占据了比较重的比例。

2. 既然HBase也是一个数据库,能否用它将现有系统中昂贵的Oracle替换掉?

HBase擅长于存储结构简单海量数据索引能力有限,而Oracle等传统关系型数据库(RDBMS)能够提供丰富的查询能力,但却疲于应对TB级别海量数据存储HBase对传统的RDBMS并不是取代关系,而是一种补充。

相关文章