MapReduce是一个可用于大规模数据处理的分布式计算框架,它借助函数式编程及分而治之的设计思想,使编程人员在即使不会分布式编程的情况下,也能够轻松地编写分布式应用程序并运行在分布式系统之上。

一、MapReduce 是什么

MapReduce 最早是由 Google 公司研究提出的一种面向大规模数据处理的并行计算模型和方法。Google 设计 MapReduce 的初衷主要是为了解决其搜索引擎中大规模网页数据的并行化处理问题. 2004年,Google 发表了一篇关于分布式计算框架 MapReduce 的论文,重点介绍了 MapReduce 的基本原理和设计思想。同年,开源项目 Lucene(搜索索引程序库)和 Nutch(搜索引擎)的创始人Doug Cutting发现 MapReduce 正是其所需要的解决大规模 Web 数据处理的重要技术,模仿Google 的 MapReduce,基于 Java 设计开发了一个后来被称为 Hadoop MapReduce 的开源并行计算框架和系统。

总的来说,MapReduce是大数据进行并行处理计算模型、框架与平台。具体包含以下3层含义。

(1)MapReduce是一个并行程序的计算模型与方法。

MapReduce是一个解决大规模数据的并行计算的编程模型。这个编程模型将大数据处理过程主要拆分为Map(映射)和Reduce(化简)两个模块,提供更为简单的并行的设计模型,即使编程人员不了解分布式计算框架的内部运行机制,只要够参照 Map 和 Reduce 的思想描述清楚要处理的问题,即编写 map 函数和 reduce 函数,就可以轻松地实现大数据的分布式计算。当然这只是简单的 MapReduce 编程。实际上,对于复杂的编程需求,只需参照 MapReduce的接口,可以完成海量数据的处理。

(2)MapReduce是一个并行程序运行的软件框架。

MapReduce可以自动化完成计算任务、自动分配和执行任务以及收集计算结果将数据分布式存储、数据通信、容错处理等并行计算涉及的很多系统底层的复杂细节问题都交由MapReduce软件框架统一处理,大大减少了软件开发人员的负担。

(3)MapReduce是一个基于集群的高性能并行计算平台。

Hadoop 中的 MapReduce是一个易于使用的软件框架,基于此框架编写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠的方式并行处理TB或PB级别的数据集。

二、MapReduce的优缺点

1.MapReduce的优点

在大数据和人工智能时代,MapReduce如此受欢迎主要因为它具有以下几个优点。

● MapReduce 易于编程。通过简单接口完成分布式程序的编写,可运行在众多服务器组成的集群上。即编写一个分布式程序与编写一个简单的串行程序是一模一样的。也正是易于使用的特点使得 MapReduce 编程变得越来越流行。

● 良好的扩展性。出现资源不足的情况,可以直接增加机器数量来扩展集群的计算能力这与HDFS通过增加机器扩展集群存储能力的道理是一样的。

● 高容错性。高容错性提现在MapReduce能使程序能够部署在廉价商用服务器上。如果其中一台机器故障,自动切换到其他节点,而且这个过程不需要人工参与,完全在 Hadoop 内部完成。

● MapReduce 适合PB级以上海量数据的离线处理。

2.MapReduce的缺点

MapReduce 虽然具有很多优势,但也有不适用的场景,即有些场景下并不适合 MapReduce 来处理,主要表现在以下几个方面。

  • 不适合实时计算。MapReduce 无法毫秒级内返回结果。MapReduct 并不适合数据的在线处理。
  • 不适合进行流式计算。MapReduce设计之初 输入数据集是静态的,不适合输入动态数据,不适合即流式计算。
  • 不适合 DAG(有向无环图)计算。程序之间的依赖性,MapReduce的处理方法是将使用后每个 MapReduce 作业的输出结果写入磁盘,这样会造成大量的磁盘 IO,导致性能非常低下。

尽管 Hadoop MapReduce 还有很多局限性,但也是目前最为成功、最易于使用的大数据并行处理技术。

MapReduce分布式计算框架的优缺点相关推荐

  1. MapReduce分布式计算框架

    1.MapReduce分布式计算框架 本章介绍了Hadoop的MapReduce分布式计算框架的基本概念.编程规范和词频统计实战等内容.从存储的大数据中快速抽取信息,进一步进行数据价值的挖掘,需要用到 ...

  2. MapReduce分布式计算框架简介

    Hadoopd分布式计算框架--MapReduce 一.MapReduce简介 1. 概念 MapReduce是基于Hadoop的分布式计算框架. 起源于Google,它将大型数据操作作业分解为可以跨 ...

  3. MapReduce(分布式计算框架)

    什么是MapReduce MapReduce是分布式计算框架,它将大型数据操作作业分解为可以跨服务器集群并行执行的单个任务,适用于大规模数据处理场景,每个job包含Map和Reduce两部分 MapR ...

  4. MapReduce 分布式计算框架 简介 特点 工作流程

    MapReduce 计算框架 一种分布式计算框架,解决海量数据的计算问题 MapReduce将整个并行计算过程抽象到两个函数 Map(映射):对一些独立元素组成的列表的每一个元素进行指定的操作,可以高 ...

  5. MapReduce(分布式计算框架)了解

    Hadoop组成 Hadoop HDFS:一个高可靠.高吞吐量的分布式文件系统,对海量数据的存储. Hadoop MapReduce:一个分布式的资源调度和离线并行计算框架. Hadoop Yarn: ...

  6. 【Hadoop】MapReduce——分布式计算框架

    文章目录 一.MapReduce设计理念 二.MpaReduce计算流程 1 原始数据File 2 数据块Block 3 切片Split 4 MapTask 5 环形数据缓冲区KvBuffer 6 分 ...

  7. Hadoop学习之MapReduce分布式计算框架

    目录 一.本地模式 1.新建一个本地maven项目 2.修改prom依赖(maven) 3.新建一个包mapreduce,在该包中新建三个包 4.写mapper组件 5.写Reducer组件 6.写D ...

  8. 大数据理论与实践5 分布式计算框架MapReduce和Spark

    MapReduce和Spark MapReduce 简介 原理示例 基本概念 作业运行模式 Spark 简介 概念 编程模型 RDD RDD操作(Operator) RDD依赖(Dependency) ...

  9. Hadoop大数据原理(3) - 分布式计算框架MapReduce

    文章目录 1. 大数据的通用计算 2 MapReduce编程模型 3. MapReduce计算框架 3.1 三类关键进程 大数据应用进程 JobTracker进程 TaskTracker进程 3.2 ...

最新文章

  1. “波士顿动力机器人”离上战场又近了一步,逆天了!
  2. java生成Excel文件,下载
  3. iOS中基于WebView的HTML网页离线访问技术的实现
  4. 面试必会 InnoDB的多版本并发控制(MVCC)
  5. C语言编程 肥宅快乐水
  6. 【转载】Web前端框架图
  7. 送抖音直播云挤地铁教程
  8. 计算机上的360云盘派啥用,如何使用360云盘
  9. 浏览器打开时总是hao123.com的网站解决办法
  10. javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 465;
  11. jetson nano 基础设置
  12. 数字孪生与元宇宙:数字化科技的双向融合之路
  13. 【推荐系统】如何解决冷启动问题
  14. 五大最受欢迎的BUG管理系统 .
  15. 组策略 gpedit.msc 及修复“无法为文件 appv.admx (*.admx)找到适当的资源文件(错误=2)”报错
  16. ActiveMq消息推送
  17. 接口传值、回传、修改Fragment 老王版本
  18. 有关天线与波的极化方向的小结:线极化,圆极化,椭圆极化
  19. 学籍信息管理系统--------总体设计
  20. WPF编写的txt阅读器(自适应各种编码,解决显示大数据量txt卡顿的问题)

热门文章

  1. 无限个开区间的交是闭区间的例子
  2. android定位并获取城市
  3. ucf 转xdc_DDR,Vivado和UCF - FPGA设计约束技巧之XDC约束之I/O篇(下)
  4. [shell脚本]表格数据在终端上可视化输出
  5. iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?
  6. 关于 pupperteer 爬虫
  7. eclipse 快捷调整字体_键盘快捷键来改变Eclipse的字体大小?
  8. Three.js 使用UV贴图制作地面
  9. transformer引入位置信息--Sinusoidal位置编码《个人学习笔记》
  10. 盘点2012年我们一起关注的NFC创新应用