百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

MapReduce分布式计算框架的优缺点

ccwgpt 2024-10-04 13:45 36 浏览 0 评论

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 来处理,主要表现在以下几个方面。

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

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

相关推荐

火电厂智能管控新基建:全场景人员定位系统架构解析

在能源生产领域,火电厂以庞大的厂区规模、复杂的作业环境和密集的人机交互著称。从高温高压的锅炉房到精密复杂的电气设备间,从露天煤场到灰渣处理区,传统管理模式下的人员定位盲区,正成为制约安全生产与高效运营...

安全仪表系统(SIS)全生命周期管理:从设计到运维的深度解析

以下是一篇关于安全仪表系统(SIS)的技术解析与实践方法,涵盖系统架构、设计标准、实施流程及行业应用。安全仪表系统(SIS)是工业过程安全的最后一道防线,通过独立于基础控制系统的硬件和逻辑,在工艺失控...

数字化转型架构下的数据安全治理方案

这份PPT文件内容围绕数字化转型架构下的数据安全治理方案展开,主要探讨了数据质量治理、安全治理、全生命周期治理以及治理考核等方面的内容。更多参考及文档获取详见公众号:优享智库数据治理概述定义与目标:数...

安全完整性等级(SIL)分析报告编制与认证实践方法

以下是一篇关于安全完整性等级(SIL)分析报告的文章,涵盖SIL定级方法、验证流程、计算模型及工程实践。安全完整性等级(SIL)是量化安全仪表系统(SIS)性能的核心指标,由IEC61508/615...

项目管理体系框架(项目的管理体系)

Pokemon go下载教程 口袋妖怪Go下载解锁方法

#p#安卓下载#e#Pokemongo怎么下载?口袋妖怪go下载教程讲解。虽然锁区了但是大家还是有办法的,首先是口袋妖怪Go下载问题,很多口袋妖怪go的安卓玩家不知道怎么下载游戏,小编给大家详细解答...

抛弃Windows吧!谷歌推免费Chrome系统,一个U盘就搞定

在目前的个人电脑上,最主流的系统当然是Windows,不过除了Windows之外,我们也可以选择购买苹果的电脑,使用苹果的MacOS系统。不过除了苹果和微软的系统之外,实际上谷歌也有自己用于个人电脑...

谷歌误发ARM版Chrome安装包,致英特尔 /AMD用户无法安装

IT之家3月26日消息,科技媒体WindowsLatest昨日(3月25日)发布博文,报道称由于谷歌误发适用于ARM架构的安装包,导致用户从谷歌官网下载的ChromeSetu...

【Google Gemini极简教程】使用Flask和Gemini API构建一个AI BaaS

BaaS(BackendasaService,后端即服务)BaaS是一种云服务模型,它为开发者提供了一种便捷的方式来构建和管理应用程序的后端服务。BaaS提供了一系列的后端功能,如数据库管理...

第一资讯Windows 10 Mobile已成功安装谷歌Play Store

虽然微软并未正式推出WP可安装APK的功能,但近期有不少玩机爱好者已经在Windows10Mobile平台上用上了Android应用,而且随后还在需要谷歌服务框架(GoogleServices)...

宝可梦TCG Pocket谷歌账号登录,给你提供指南

《宝可梦TCGPocket》作为一款备受欢迎的卡牌对战游戏,为了给玩家提供更加便捷和安全的登录方式,支持使用谷歌账号进行登录。通过谷歌账号登录,您不仅可以快速进入游戏,还能享受账号数据同步、跨设备游...

秒变万能家庭服务器!斐讯N1 armbian安装指南

一直以来,我都想配置一台小型服务器放在家里玩一玩,但是x86架构的主机体积大功耗高,价格也不低。而树莓派的话,价格便宜一点,性能对于轻度使用也基本够用。可是树莓派仍然要两三百块钱,感觉还是有点贵。于是...

如何自己开发一个Google浏览器插件?

相信很多人都好奇,谷歌浏览器那么多的插件是如何开发的,我们如何开发一个自定义的Google浏览器插件,下面我们就来详细的给出一个开发Google浏览器插件的流程。准备环境首先需要有一个文本编辑器工具如...

我的世界手机版谷歌商店安装教程(我的世界谷歌下载)

在我的世界手机版升级到0.11.0版本后,很多玩家发现正式版需要有谷歌商店的验证也就是必须安装Googleplay才能玩。这次搞趣网小编就为大家带来我的世界手机版谷歌商店安装教程。有些手机自带Goo...

部落冲突安卓版谷歌怎么绑定 有无root都可以

部落冲突安卓版谷歌怎么绑定?下面小编为大家带来部落冲突安卓版谷歌绑定攻略详解,希望这篇攻略详解能够对大家有所帮助。首先准备这些东西(必须在网上自己下载,不要相信google应用)还需要下载"谷歌服务框...

取消回复欢迎 发表评论: