文档介绍:HBASE
电子工业出版社刘鹏主编《云计算》教材配套课件9
内容提要
为什么需要HBase
HTable的逻辑组织
HBase的运行机制
HBase与 HDFS
HBase的对外接口
引入HBASE的原因
数据库系统已无法适应大型分布式数据存储的需要
改良的关系数据库(副本、分区等)难于安装与维护
关系模型对数据的操作使数据的存贮变得复杂
引入HBASE的原因
HBASE从设计理念上就为可扩展做好了充分准备
空间的扩展只需要加入存储结点
使用‘表’的概念,但不同于关系数据库,不支持SQL
实质上是一张极大的、非常稀疏的,存储在分布式文件系统上的表
HBase历史
2006年底由PowerSet 的Chad Walters和Jim Kellerman 发起
2008年成为Apache Hadoop的一个子项目
现已作为产品被使用
WorldLingo
OpenPlaces
Yahoo
Adobe
HBASE用例-WebTable
存储抓取网页和相关信息
每个页面对应一行,是个有百万行的大表
要基于此表进行分析与解析并由搜索引擎对关键字进行索引
表需要并发地被众多网页抓取程序随机地访问以及更新数据
表内容也要作为网页实时缓存被大量用户随机访问
逻辑视图
Row Key
Time Stamp
Column Contents
Column Anchor
Column “mime”
“”
T9
CNN
T8
T6
“<html>.. “
Text/html
T5
“<html>.. “
t3
“<html>.. “
数据模型-行
Row Key
Time Stamp
Column Contents
Column Anchor
Column “mime”
“”
T9
CNN
T8
T6
“<html>.. “
Text/html
T5
“<html>.. “
t3
“<html>.. “
行键
列
列
数据模型-行
每行数据有一可排序的关键字和任意列项
字符串、整数、二进制串甚至与串行化的结构都可以作为行键
表按照行键的“逐字节排序”顺序对行进行有序化处理
表内数据非常‘稀疏’,不同的行的列的数完全目可以大不相同
数据模型-行
可以只对一行上“锁”
对行的写操作是始终是“原子”的