关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。
6年前关门了。
改进这个问题
我用cloudera测试了hadoop和mapreduce,我发现它非常酷,我认为我是最新的和相关的bigdata解决方案。但几天前,我发现:https://spark.incubator.apache.org/
一个“ lightning 般快速的集群计算系统”,能够在hadoop集群上工作,而且显然能够摧毁mapreduce。我看到它在ram中比mapreduce更有效。我认为mapreduce在您必须进行集群计算以克服在一台机器上可能存在的i/o问题时仍然是相关的。但是,既然spark可以完成mapreduce所做的工作,而且在一些操作上可能效率更高,那么mapreduce不是就到此为止了吗?或者mapreduce还能做些什么,或者mapreduce在特定的环境下能比spark更有效吗?
2条答案
按热度按时间plicqrtu1#
mapreduce本质上是面向批处理的。因此,在mr实现之上的任何框架,比如hive和pig,本质上也是面向批处理的。对于机器学习和交互式分析中的迭代处理,hadoop/mr不能满足要求。这是一篇来自cloudera的好文章
Why Spark
很好地总结了一下。在撰写本文时,hadoop与spark相比已经非常成熟,很多供应商都支持它。它会随着时间的推移而改变。cloudera已经开始将spark纳入cdh,随着时间的推移,越来越多的供应商将其纳入大数据分发中,并为其提供商业支持。在可预见的未来,我们将看到mr和spark并行不悖。
同样使用hadoop2(aka yarn),mr和其他模型(包括spark)可以在单个集群上运行。所以,hadoop不会有任何进展。
b1uwtaje2#
取决于你想做什么。
mapreduce最大的优点是处理大量的大型文本文件。hadoop的实现是围绕字符串处理构建的,它的i/o负担非常重。
mapreduce的问题是,人们看到简单的平行度锤,一切都开始看起来像钉子。不幸的是,hadoop除了处理大型文本文件外,在其他方面的性能都很糟糕。如果你编写了一个不错的并行代码,你通常可以在hadoop生成第一个vm之前完成它。我在自己的代码中看到了100倍的差异。
spark消除了hadoop的许多开销,比如对i/o的依赖。取而代之的是,它把一切都留在了记忆中。如果你有足够的记忆力就很好,如果你没有记忆力就不太好了。
请记住,spark是hadoop的扩展,而不是替代品。如果使用hadoop来处理日志,spark可能不会有帮助。如果你有更复杂的,也许是紧密耦合的问题,那么spark会有很大帮助。此外,您可能喜欢spark的scala接口,用于在线计算。