HBase简介

进入海量数据(Big Data)时代,传统文件系统与关系数据库逐渐无法承载过度膨胀的数据量, 透过硬件升级、采用特殊的演算机制,仍然无法有效解决数据持续增长所造成的系统效能不彰问题。 在这样的困境下,Doug Cutting 于 2006 年开发 Hadoop 分布式系统平台, 切分成多个运算单元与储存单元,利用分布式的概念,减轻大量数据集中管理对单一节点造成的负担。

因为 Hadoop 只是一个系统平台, 放在 Hadoop 文件系统 HDFS(Hadoop Distributed File System)内的数据虽然是分散储存, 却是以档案的型式存放,并不支持随机存取(Random Reads and Writes)的功能。 为了更方便存取在 Hadoop 环境下的数据,HBase 应运而生,提供一个类似数据库的储存环境, 因为与关系数据库架构上有极大的不同,这类型的数据库通常称之为 NoSQL 数据库, 有下列主要的特点:

(一)Distributed 分布式
HBase 包含 Master、Zookeeper 和 Region Server 三个组成要素, Master 纪录 Metadata,Zookeeper 负责协调各个节点之间的联系,Region Server 管理和取用实际存放的数据内容。

(二)Multi-Dimensional 多维度储存
HBase 是以 Key-Value 的概念储存资料, 透过 Rowkey、Column Family、Column Qualifier、Version,可以指定唯一的数据内容。 相较于传统关系数据库由 Row 和 Column 产生的二维储存空间,HBase 是一个多维度的数据储存架构。

(三)High-Availability 高可靠性
资料储存的部分,可以建立在 Hadoop 的分布式文件系统 HDFS 之上, 拥有数据副本,任意一个节点故障,都不影响数据存取。 数据管理方面,HBase Cluster 存在多个 Region Server,任意一台 Region Server 中断服务, 自动会由另一台 Region Server 接手原有的服务,处理 Client 提出数据存取需求。

(四)High-Performance 高效能
HBase 的分散环境,除了数据分散存放的特性之外, 每一个分散的数据区块各自拥有独立的运算能力。 当使用者对整个数据库系统进行操作的时候,分散的资料各自独立运算整理, 同步处理使用者的要求,即可达到高效能的运作。

(五)Storage System 储存系统
HBase 是建构在分布式系统平台上的数据库。

(六)A Big Sorted Map
HBase 的数据是以 Key-Value 的方式存放,数据结构为 Map<RowKey, Map <ColumnFamily, Map<ColumnQualifier, Map<Version, Data>>>>, 是一个多层的 Map 数据结构。