首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Hadoop Mapreduce分布式处理比正常顺序处理耗时更长?

为什么Hadoop Mapreduce分布式处理比正常顺序处理耗时更长?
EN

Stack Overflow用户
提问于 2019-04-08 16:56:02
回答 1查看 85关注 0票数 0

我用Java编写了一段简单的代码来读取csv文件,对行进行细微的修改(使用散列),然后写入输出文件。

我想比较一下顺序版本(纯java)和MapReduce版本的代码。(代码没有太大区别)。

我在伪分布式hadoop (单节点)和全分布式hadoop (3个节点)中都尝试过代码,但令我惊讶的是,MapReduce版本的执行时间总是高于顺序版本(近似两到三倍)。

我在Hadoop方面没有太多经验,但至少分布式处理应该比串行处理花费更少的时间(因为这就是为什么我们有分布式处理)。我甚至尝试了不同的数据集大小。

EN

回答 1

Stack Overflow用户

发布于 2019-04-08 17:05:12

与顺序算法相比,每个并行算法都有额外的开销-这种开销可以是在单个机器上创建和维护线程,但主要是通信开销-分发初始数据、进程间通信( IPC )、收集部分结果和/或合并它们。

算法的效率取决于各种因素-显然是输入大小,但也包括用于计算的节点数量-请参见isoefficiency。使用更多的机器并不总是意味着更快的处理时间。通过使用等效率方程,您可以计算对于固定的问题大小应该使用多少个节点来最大化效率。

你的问题没有提供详细的信息,比如你使用了什么算法,你提供了什么实例,但我希望对于非常大的实例,你的分布式系统应该比它的顺序对应系统更快。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55569618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档