<cite id="fzn17"></cite>
<var id="fzn17"></var><cite id="fzn17"><video id="fzn17"></video></cite>
<cite id="fzn17"></cite>
<var id="fzn17"></var>
<menuitem id="fzn17"><span id="fzn17"><thead id="fzn17"></thead></span></menuitem>
<cite id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></cite><var id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></var>
<var id="fzn17"></var>
<menuitem id="fzn17"></menuitem>
<cite id="fzn17"><video id="fzn17"></video></cite>
|
|
51CTO旗下网站
|
|
移动端

1.3.1 关系型数据库管理系统

《Hadoop权威指南(中文版)》本书从Hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍Hadoop这一高性能处理海量数据集的理想工具。第1章为初识Hadoop,本节为大家介绍关系型数据库管理系统。

作者:周傲英/曾大聃译来源:清华大学出版社|2010-04-23 15:11

1.3.1  关系型数据库管理系统

为什么我们不能使用数据库?#30001;?#26356;多磁盘来做大规模的批量分析?为什么我们需要MapReduce?

这个问题的答案来自于磁盘驱动器的另一个发展趋势:寻址时间的提高速度远远慢于传输速率的提高速度。寻址就是将磁头移动到特定位置进行读写操作的工序。它的特点是磁盘操作有延迟,而传输速?#35782;?#24212;于磁盘的带宽。

如果数据的访问模式受限于磁盘的寻址,势必会导致它花更长时间(相较于流)来读或写大部分数据。另一方面,在更新一小部分数据库记录的时候,传统的B树(关系型数据库中使用的一种数据结构,受限于执行查找的速度)效果很好。但在更新大部分数据库数据的时候,B树的效率就没有MapReduce的效率高,因为它需要使用排序/合并来重建数据库。

在许多情况下,MapReduce能够被视为一种RDBMS(关系型数据库管理系统)的补充。(两个系统之间的差异见表1-1)。MapReduce很适合处理那些需要分析整个数据集的问题,以批处理的方式,尤其是Ad Hoc(自主或即时)分析。RDBMS适用于点查询和更新(其中,数据集已经被索引以提供低延迟的检索和短时间的少量数据更新。MapReduce适合数据被一次写入和多次读取的应用,而关系型数据库更适合?#20013;?#26356;新的数据集。

表1-1:关系型数据库和MapReduce的比较

 

传统关系型数据库

MapReduce

数据大小

GB

PB

访问

交互型和批处理

批处理

更新

多次读写

一次写入多次读取

结构

静态模式

动态模式

集成度

伸缩性

非线性

线性


MapReduce和关系型数据库之间的另一个区别是它们操作的数据集中的结构化数据的数量。结构化数据是拥有准确定义的实体化数据,具有诸如XML文档或数据库表定义的格式,符合特定的预定义模式。这就是RDBMS包括的内容。另一方面,半结构化数据比较宽松,虽然可能有模式,但经常被忽略,所以它只能用作数据结构指南。例如,一张电子表格,其中的结构便是单元格组成的网格,尽管其本身可能保存任何?#38382;?#30340;数据。非结构化数据没有什么特别的内部结构,例如纯文本或图像数据。MapReduce对于非结构化或半结构化数据?#27973;S行В?#22240;为它被设计为在处理时间内解释数据。换句话说:MapReduce输入的键和值并不是数据固有的属性,它们是由分析数据的人来选择的。

关系型数据往往是规范的,以保持其完整性和删除冗余。规范化为MapReduce带来问题,因为它使读取记录成为一个非本地操作,并且MapReduce的核心假设之一就是,它可以进行(高速)流的读写。

Web服务器日志是记录集的一个很好的非规范化例子(例如,客户端主机名?#30475;味家?#20840;名来指定,即使同一客户端可能会出现很多次),这也是MapReduce?#27973;?#36866;合用于分析各种日志文件的原因之一。

MapReduce是一种线性的可伸缩的编程模型。程序员编写两个函数--  map函数和Reduce函数-- 每一个都定义一个键/值对集?#25104;?#21040;另一个。这些函数无视数据的大小或者它们正在使用的集群的特性,这样它们就可以原封不动地应用到小规模数据集或者大的数据集上。更重要的是,如果放入两倍的数据量,运行的时间会少于两倍。但是如果是两倍大小的集?#28023;?#19968;个任务任然只是和原来的一样快。这不是一般的SQL查询的效果。

随着时间的推移,关系型数据库和MapReduce之间的差异很可能变得模糊。关系型数据库都开始吸收MapReduce的一些思路(如ASTER DATA的和GreenPlum的数据库),另一方面,基于MapReduce的高级查询语言(如Pig和Hive)使MapReduce的系统更接近传统的数据库编程人员。

【责任编辑:云霞 TEL?#28023;?10)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你?#19981;?/dt>

订阅专栏+更多

笑熬浆糊之职场那些事

笑熬浆糊之职场那些事

IT人的职场心法
共22章 | Bear_Boss

62人订阅学习

Redis?#23435;?#31192;籍

Redis?#23435;?#31192;籍

?#23435;?#26631;配技术
共15章 | one叶孤舟

133人订阅学习

活学活用 Ubuntu Server

活学活用 Ubuntu Server

实战直通车
共35章 | UbuntuServer

247人订阅学习

读 书 +更多

Ubuntu Linux入门到精通

本书全面介绍了Ubuntu Linux?#21335;?#20851;知识,内容详实,论述清晰。主要内容包括Ubuntu介绍、文件系统管理、进程管理、压缩与查询系统、Shel...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客

澳洲幸运5官方
<cite id="fzn17"></cite>
<var id="fzn17"></var><cite id="fzn17"><video id="fzn17"></video></cite>
<cite id="fzn17"></cite>
<var id="fzn17"></var>
<menuitem id="fzn17"><span id="fzn17"><thead id="fzn17"></thead></span></menuitem>
<cite id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></cite><var id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></var>
<var id="fzn17"></var>
<menuitem id="fzn17"></menuitem>
<cite id="fzn17"><video id="fzn17"></video></cite>
<cite id="fzn17"></cite>
<var id="fzn17"></var><cite id="fzn17"><video id="fzn17"></video></cite>
<cite id="fzn17"></cite>
<var id="fzn17"></var>
<menuitem id="fzn17"><span id="fzn17"><thead id="fzn17"></thead></span></menuitem>
<cite id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></cite><var id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></var>
<var id="fzn17"></var>
<menuitem id="fzn17"></menuitem>
<cite id="fzn17"><video id="fzn17"></video></cite>
pk10刷流水骗局 北京pk10计划免费 重庆时时彩可以发财吗 为什么乌克兰美女多 新疆时时彩开奖号码 成人美女图片 每天兼职赚300的方法 中国福中心老时时 精准免费彩票计划软件11远5 二八杠生死门演示