我们为什么不能使用数据库来对大量磁盘上的大规模数据进行批量分析呢?我们为什么需要MapReduce?

这些问题的答案来自磁盘的另一个发展趋势:寻址时间的提高远远慢于传输速率的提高寻址是将磁头移动到特定磁盘位置进行读写操作的过程。它是导致磁盘操作延迟的主要原因,而传输速率取决于磁盘的带宽

如果数据的访问模式中包含大量的磁盘寻址,那么读取大量数据集所花的时间势必会更长(相较于流式数据读取模式),流式读取主要取决于传输速率。另一方面,如果数据库系统只更新一小部分记录,那么传统的B树更有优势(关系型数据库中使用的一种数据结构,受限于寻址的比例)。但数据库系统更新大部分数据时,B树的效率比MapReduce低得多,因为需要使用“ 排序/合并“(sort/merge)来重建数据库。

在许多情况下,可以将MapReduce视为关系型数据库管理系统的补充。两个系统之间的差异如表1-1所示。MapReduce比较适合以批处理的方式处理需要分析整个数据集的问题尤其是即席分析。RDBMS适用于“点查询”(point query)和 更新,数据集被索引后,数据库系统能够提供低延迟的数据检索和快速的少量数据更新。MapReduce 适合一次写人、多次读取数据的应用,而关系型数据库更适合持续更新的数据集。

【补充】即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。

MapReduce和关系型数据库之间的另一个区别在于它们所操作的数据集的结构化程度。结构化数据(structured data)是 具有既定格式的实体化数据,诸如XML文档或满足特定预定义格式的数据库表。这是RDBMS包括的内容。另一方面,半结构化数据(semi-structured data)比较松散,虽然可能有格式,但经常被忽略,所以它只能用作对数据结构的般指导。 例如,一张电子表格, 其结构是由单元格组成的网格,但是每个单元格自身可保存任何形式的数据。非结构化数据(unstructured data)没有什么特别的内部结构,例如纯文本或图像数据。MapReduce对于非结构化或半结构化数据非常有效,因为在处理数据时才对数据进行解释。

换句话说:MapReduce输人的键和值并不是数据固有的属性,而是由分析数据的人员来选择的。

关系型数据往往是规范的(normalized),以保持其数据的完整性且不含冗余。规范化给MapReduce 带来了问题,因为它使记录读取成为异地操作,然而MapReduce的核心假设之一就是,它可以进行(高速的)流式读写操作。

Web服务器日志是一个典型的非规范化数据记录(例如,每次都需要记录客户端主机全名,导致同一客户端全名可能会多次出现),这也是MapReduce 非常适合用于分析各种日志文件的原因之一。

MapReduce是一种线性可伸缩的编程模型。程序员编写两个函数,分别为map 函数和reduce 函数每 个函数定义一个键/值对集合到另一个键值对集合的映射。

这些函数无需关注数据集及其所用集群的大小,因此可以原封不动地应用到小规模数据集或大规模的数据集上。更重要的是,如果输入的数据量是原来的两倍,那么运行的时间也需要两倍。但是如果集群是原来的两倍,作业的运行仍然与原来一样快。SQL查询一般不具备该特性。

但是在不久的将来,关系型数据库系统和MapReduce系统之间的差异很可能变得模糊。关系型数据库都开始吸收MapReduce 的一一些思路(如Aster DATA的和GreenPlum的数据库),另一方面,基于MapReduce的高级查询语言(如Pig和Hive)使MapReduce的系统更接近传统的数据库编程方式。。

摘自:hadoop权威指南(第二版)

为什么需要MapReduce?相关推荐

  1. mapreduce理解_大数据

    map:对不同的数据进行同种操作 reduce:按keys 把数据规约到一起 看这篇文章请出去跑两圈,然后泡一壶茶,边喝茶,边看,看完你就对hadoop 与MapReduce的整体有所了解了. [前言 ...

  2. 2021年大数据Hadoop(二十二):MapReduce的自定义分组

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 MapReduce的自定义分组 需求 分析 实现 第一步: ...

  3. 第2节 mapreduce深入学习:4, 5

    第2节 mapreduce深入学习:4.mapreduce的序列化以及自定义排序 序列化(Serialization)是指把结构化对象转化为字节流. 反序列化(Deserialization)是序列化 ...

  4. 第一个MapReduce程序

    计算文件中每个单词的频数 wordcount 程序调用 wordmap 和 wordreduce 程序. 1 import org.apache.hadoop.conf.Configuration; ...

  5. hadoop程序MapReduce之SingletonTableJoin

    需求:单表关联问题.从文件中孩子和父母的关系挖掘出孙子和爷奶关系 样板:child-parent.txt xiaoming daxiong daxiong alice daxiong jack 输出: ...

  6. 初学Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...

  7. MapReduce编程初体验

    需求:在给定的文本文件中统计输出每一个单词出现的总次数 第一步: 准备一个aaa.txt文本文档 第二步: 在文本文档中随便写入一些测试数据,这里我写入的是 hello,world,hadoop he ...

  8. [MaxCompute MapReduce实践]通过简单瘦身,解决Dataworks 10M文件限制问题

    用户在DataWorks上执行MapReduce作业的时候,文件大于10M的JAR和资源文件不能上传到Dataworks,导致无法使用调度去定期执行MapReduce作业. 解决方案: 第一步:大于1 ...

  9. mapreduce作业reduce被大量kill掉

    之前有一段时间.我们的hadoop2.4集群压力非常大.导致提交的job出现大量的reduce被kill掉.同样的job执行时间比在hadoop0.20.203上面长了非常多.这个问题事实上是redu ...

  10. Hadoop集群的基本操作(一:HDFS操作及MapReduce程序练习)

    实验 目的 要求 目的: 理解HDFS在Hadoop体系结构中的角色: 熟练使用HDFS操作常用的Shell命令: 了解Hadoop集群MapReduce程序的简单使用: (上传WordCount的j ...

最新文章

  1. yolov4源码_YOLOv4特征提取网络——CSPDarkNet结构解析及PyTorch实现
  2. sql2000 的bcp命令
  3. 10分钟让你明白什么是ERP
  4. Qtum量子链帅初受邀火星特训营面对面授课
  5. 风口上的储能,光伏要飞起来?
  6. 在idea中使用git管理你的项目
  7. ssis什么情况下用到变量_了解SSIS内存使用情况
  8. hadoop3.1集成tez和tez-ui
  9. Android 4G 模块添加 TV平台Mstar HISI
  10. 图像处理 灰度世界算法
  11. 求1000以内的素数c语言5个一行,求1000以内的素数用C语言 ,并按每行5个的方式输出...
  12. Windows补丁查询地址
  13. 序号47指标横向展示.xlsx_杭州增加2万个小客车指标!想拥有“浙A”车牌,这个APP一定要收好~...
  14. 直播实录|百度大脑EasyDL·NVIDIA专场 产品介绍及AI端计算技术架构解析
  15. 【UVA10859】Placing Lampposts
  16. Javascript(十三)javascript BOM详解
  17. 上海航芯|推出基于ACX200T的V2X解决方案
  18. pip 添加trusted host 一劳永逸
  19. JSON.parse和evel的区别
  20. <<数值分析>>第二章线性方程组的直接解法

热门文章

  1. 2021HDU多校6 - 7029 Median(思维)
  2. XJOJ - 选信封(离散化+增广路)
  3. CodeForces - 1249C2 Good Numbers (hard version)(进制转换)
  4. CodeForces - 765D Artsem and Saunders(数学化简+构造+思维)
  5. python将list写入文件_Python:将 list 写入一个 txt 文件
  6. edit plus 中文插件_iMindMap手绘思维导图软件中文版
  7. Linux服务-SSH服务部署
  8. git 删除本地仓库中的分支_本地 Git 仓库与 GitHub 关联
  9. VIM-多文件-多窗口
  10. 如何替公司省下数千万勒索费用