hadoop和关系型数据库系统比较

Hadoop提供了一个稳定的共享存储和分析系统,存储由HDFS实现,分析由MapReduce实现。针对每个查询,每个数据库集(至少是很大一部分)都会被处理。

为什么不通过使用数据库加上更多磁盘来做大规模批量分析?为什么我们还需要MapReduce?

1、磁盘驱动器寻址时间的速度远远慢于传输速率的提高速度,寻址就是将磁头移动到特定位置进行读写操作的工序,它的特点是磁盘操作有延迟,而传输速率对应磁盘的带宽。如果数据的访问受限于磁盘的
寻址,势必会导致它花更长的时间来读或写大部分数据。

2、在更新一小部分数据的情况下,传统的B树效果很好,但在更新大部分数据时,B树的效率就没有MapReduce的高,因为它需要使用排序/合并来重建数据库。

在很多情况下,MapReduce能够被视为一种RDBMS的补充,MapReduce很适合处理那些需要分析整个数据集的问题,以批处理的方式,尤其是Ad Hoc(自主或即时)分析。RDBMS适用于点查询和更新
(其中,数据集已经被索引以提供低延迟的检索和短时间的少量数据更新)。MapReduce适合数据被一次写入和多次读取的应用,而RDBMS更适合持续更新的数据集。

关系型数据库 vs MapReduce

 传统关系型数据库MapReduce
数据大小GBPB
访问交互型和批处理批处理
更新多次读写一次写多次读
结构静态模式动态模式
集成度
伸缩性非线性线性

相关推荐