购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 结构化存储

3.3.1 HBase基本介绍

HBase是一个分布式、面向列的开源数据库,实现语言为Java,它是Apache软件基金会Hadoop项目的子项目,运行于HDFS文件系统之上。HBase起源于2006年Chang等所撰写的Google论文《Bigtable:一个结构化数据的分布式存储系统》。就像Bigtable利用了Google文件系统(Google File System)所提供的分布式数据存储一样,HBase在Hadoop HDFS之上提供了类似于Bigtable的能力,可以存储海量稀疏的数据,并具备一定的容错性、高可靠性、高性能、面向列及可伸缩的特点。

Apache HBase最初是Powerest公司为了处理自然语言搜索产生的海量数据而开展的项目,具体的发展历程如图3-4所示。HBase不同于一般的关系型数据库,它是一个适合于非关系型数据存储的数据库,且是基于列而不是基于行的模式。HBase应用十分广泛,常见的应用场景有互联网搜索引擎数据存储、审计日志系统、实时系统及消息中心等方面。

·图3-4 HBase发展历史

3.3.2 HBase中的基本概念

HBase的逻辑视图如图3-5所示。

·图3-5 HBase逻辑视图

HBase的基本概念如下。

· Row Key:格式为字节数组(Byte[]),是表中每条记录的主键,方便快速查找。

· Column Family:格式为字符串(String),列簇,包含一个或者多个相关列。

· Column:格式为字符串(String),属于某一个Column Family,每条记录可动态添加。

· Version Number:格式为长整形(Long),默认值是系统时间戳,可由用户自定义。

· Value(Cell):格式为字节数组(Byte[]),是存储的数据。

HBase的逻辑架构与基本组件如图3-6所示。

·图3-6 HBase逻辑架构与基本组件

Hbase的部署架构如图3-7所示。

·图3-7 HBase部署架构

3.3.3 Hbase常用命令

HBase命令行支持一些常用命令,用于操作HBase表结构以及数据。

· 查看表:List。

· 创建表:create't1',{NAME =>'f1',VERSIONS => 2},{NAME =>'f2',VERSIONS => 2}。

· 删除表:disable't1'

和drop't1'。

· 查看表结构:describe't1'。

· 修改表:具体格式如下。

· 分配权限:grant'test','RW','t1'。

· 添加数据:put't1','rowkey001','f1:col1','value01'。

· 查询:get't1','rowkey001','f1:col1'。

· 扫描表:scan't1',{LIMIT=>5}。

· 查询表中的数据行数:count't1',{INTERVAL => 100,CACHE => 500}。

· 删除行中的某个列值:delete't1','rowkey001','f1:col1'。

· 删除表中的所有数据:truncate't1'。 WTGLCTKvx9QzVyHYMWJt019c/BekDhpx+7Q82l0T7ya9MLMVWnH/FkbFy9TD9n9U

点击中间区域
呼出菜单
上一章
目录
下一章
×