当前位置:
文档之家› 云计算导论 第8章-云计算导论(第2版)-吕云翔-清华大学出版社
云计算导论 第8章-云计算导论(第2版)-吕云翔-清华大学出版社
NoSQL的结构通常提供弱一致性的保证,如最终一致性。少数 NoSQL系统部署了分布式结构,通常使用分布式散列表(DHT)将 数据以冗余方式保存在多台服务器上。依此,扩充系统时候添加服 务器更容易,并且扩大了对服务器失效的承受程度。
NoSQL数据库的四大分类
分类
键值 (keyvalue)
Examples举例
1、Hbase的访问接口和数据模型
Hbase的访问接口如下: ➢ Native Java API 最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理 HBase表数据 ➢ HBase Shell HBase的命令行工具,最简单的接口,适合HBase管理使用 ➢ Thrift Gateway 利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合 其他异构系统在线访问HBase表数据;
1、Hbase的访问接口和数据模型
➢ REST Gateway 支持REST 风格的Http API访问HBase, 解除了语言限制 ➢ Pig 可以使用Pig Latin流式编程语言来操作HBase中的数据,和Hive类似, 本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数 据统计 ➢ Hive 当前Hive的Release版本尚没有加入对HBase的支持。
结构化数据
图结构
优点
缺点
查找速度快
数据无结构化,通常 只被当作字符串或者
二进制数据
查找速度快,可扩 展性强,更容易进
行分布式扩展
功能相对局限
数据结构要求不严
格,表结构可变, 不需要像关系型数 据库一样需要预先
查询性能不高,而且 缺乏统ቤተ መጻሕፍቲ ባይዱ的查询语法。
定义表结构
利用图结构相关算
法。比如最短路径 寻址N度关系查找
数据库能够了解 Value的内容)
图形
(Graph) 数据库
社交网络
Neo4J, InfoGrid,
推荐系统
Infinite Graph 专注于构建关系图谱
数据模型
Key指向Value 的 键值对,通常用 hash table来实现 以列簇式存储, 将同一列数据存
在一起
Key-Value对应的 键值对,Value为
t5 contents:html=“<html>…”
t3 contents:html=“<html>…”
Hbase数据形式
➢ 行(RowKey) 行键是字节数组, 任何字符串都可以作为行键 表中的行根据行键进行排序,数据按照Row key的字节序(byte order)排序存储 所有对表的访问都要通过行键(单个RowKey访问,或RowKey范 围访问,或全表扫描)
1、数据模型
BigTable是一个稀疏的、分布式的、持久化存储的多维度排序 Map。Map的索引是行关键字、列关键字以及时间戳,Map中的每个 value都是一个未经解析的byte数组。 ➢行 ➢ 列族 ➢ 时间戳
2、BigTable的构件
➢BigTable是建立在其它的几个Google基础构件上的。BigTable使用 Google公司的分布式文件系统存储日志文件和数据文件。 ➢BigTable内部存储数据的文件是Google SSTable格式的。SSTable是 一个持久化的、排序的、不可更改的Map结构,而Map是一个keyvalue映射的数据结构,key和 value的值都是任意的Byte串。 ➢BigTable包括了三个主要的组件,链接到客户程序中的库、一个 Master服务器和多个Tablet服务器。
典型应用场景
Tokyo
内容缓存,主要用于
Cabinet/Tyrant, 处理大量数据的高访
Redis, Voldemort, 问负载,也用于一些
Oracle BDB
日志系统等等
列存储数 Cassandra,
据库
HBase, Riak
分布式的文件系统
文档型数 据库
CouchDB, MongoDb
Web应用(与KeyValue类似,Value是 结构化的,不同的是
第8章 分布式存储系统
分布式文件系统是分布式存储系统(键值系统、表格系统、数 据库系统)的底层基础部件,本章介绍基于分布式文件系统之上 用于大规模数据存储的存储系统。分布式存储系统所起的主要 功能有两个:一是存储文档、图像、视频之类的Blob类型数据; 二是作为分布式表格系统的持久化层。
第1节 概述
等
很多时候需要对整个 图做计算才能得出需 要的信息,而且这种 结构不太好做分布式
的集群方案
第3节 分布式存储系统BigTable
BigTable是一个分布式的结构化数据存储系统,它被设计用来 处理海量数据,通常是分布在数千台普通服务器上的PB级的数据。
BigTable的设计目的是可靠地处理PB级别的数据,并且能够部 署到上千台机器上。BigTable已经实现了如下几个目标: ➢ 适用性广泛 ➢ 可扩展 ➢ 高性能 ➢ 高可用性
第4节 分布式存储系统Hbase
➢HBase是一个分布式的、面向列的开源数据库,就像BigTable利用 了Google文件系统(File System)所提供的分布式数据存储一样, HBase在Hadoop之上提供了类似于BigTable的能力。 ➢ HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系 数据库,它是一个适合于非结构化数据存储的数据库。另一个不同 的是HBase基于列的而不是基于行的模式。
分布式存储系统是大量普通PC服务器通过Internet互联,对外作 为一个整体提供存储服务的系统。
分布式存储涉及的技术主要来自两个领域:分布式系统以及数 据库。关于这两个技术领域的基本要求有以下几个方面: 数据分布
一致性 容错 负载均衡 事物与并发控制 易用性 压缩/解压缩
第2节 NoSQL数据库
Hbase数据形式
行键
时间戳
列族contents
t9
t8
“n.www” t6 contents:html=“<html>…”
列族anchor
anchor:= “CNN”
anchor:my.look.ca= “”
列族mime
mine:type=“text/html”