导读:HBase是一个构建在HDFS之上的、分布式的、支持多版本的NoSQL数据库,它的出现补齐了大数据场景下快速查询数据能力的短板。它非常适用于对平台中的热数据进行存储并提供查询功能。
作者:朱凯
来源:大数据DT(ID:hzdashuju)
01 概述
HBase的出现很好地弥补了大数据快速查询能力的空缺。让我们再次将时间拨回到2006年,那时Hadoop项目已经正式启动,开源社区已经拥有了HDFS和MapReduce。通过HDFS我们拥有了能够存储海量文件的分布式文件系统。通过MapReduce我们拥有了一种对海量数据进行批处理操作的途径。
但是这还不够,我们在大数据领域还没有一款能够称为数据库的产品。就在2006年年末,Google发表了著名的Bigtable论文。此后HBase便诞生了。
HBase是一个构建在HDFS之上的、分布式的、支持多版本的NoSql数据库。它也是Google BigTable的开源实现。HBase非常适合于对海量数据进行实时随机读写。HBase中的一张表能够支撑数十亿行和数百万列。
HBase从设计上来讲是一个由三类服务组成的Master/Slave架构服务。HBase Master进程负责处理Region分配、DDL(create、delete表)这类操。数据的读写由RegionServers进程负责处理。底层数据存储和集群协同管理则交由HDFS和Zookeeper进行管理,如图2-6所示。
▲图2-6 HBase逻辑架构图
HBase的所有数据最终都以HDFS文件的形式进行存储,Region Server服务通常是伴随着HDFS的Datanode进行部署的,这样可以更好地利用数据本地性的优势。
HBase采用主从架构。其分布式协调是通过Zookeeper进行管理的,而数据的物理存储最终会以文件的形式存储到HDFS。
02 数据模型
HBase是一个NoSQL数据库,它通过一个四维数据模型定义数据,如图2-7所示。
RowKey:HBase中的每行数据都必须拥有一个唯一的行键,它类似于关系型数据库中的主键。
Column Family:HBase中的每个列都归属于一个列簇&