首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spark vs Hadoop用这个简单的例子?

Spark vs Hadoop用这个简单的例子?
EN

Stack Overflow用户
提问于 2019-05-12 19:17:45
回答 1查看 172关注 0票数 0

在谷歌上,Spark和Hadoop MapReduce之间的关键区别都体现在处理方法上: Spark可以在内存中完成,而Hadoop MapReduce必须从磁盘读取和写入。看起来我明白了,但我想用一个例子来确认一下。

考虑下面的字数统计示例:

代码语言:javascript
运行
复制
 val text = sc.textFile("mytextfile.txt") 
 val counts = text.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_) 
 counts.collect

我的理解是:

在Spark的情况下,一旦行被“”分割,输出将存储在内存中。与函数map和reduce类似。我相信当处理跨分区发生时也是如此。

在MapReduce的情况下,每个中间结果(像split/map/reduce之后的单词)是否会保存在磁盘上,即HDFS,这使得它比Spark更慢?我们没有办法把它们保存在内存中吗?分区结果也是这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-12 20:07:47

是的,你是对的。

SPARK中间RDD (弹性分布式数据集)结果保存在内存中,因此延迟更低,作业吞吐量更高。RDDs有分区,像SPARK先生这样的数据块也提供迭代处理,这也是需要考虑的一个关键点。

当然,MR确实有一个Combiner,可以稍微减轻一些痛苦。

但使用Scala或pyspark时,SPARK也更容易使用。

我不会再担心MR了--总的来说。

这里有一篇关于SPARK BTW的优秀读物:https://medium.com/@goyalsaurabh66/spark-basics-rdds-stages-tasks-and-dag-8da0f52f0454

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

https://stackoverflow.com/questions/56098691

复制
相关文章

相似问题

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