MapReduce 和 Spark 的关系是什么? 看了很多资料都讲不明白,能不能通俗一点,谢谢

2016-02-24 16:31:28 +08:00
 anonymoustian
6055 次点击
所在节点    Hadoop
17 条回复
newton108
2016-02-24 17:03:56 +08:00
菜鸟来回答: Spark 用内存,比 MapReduce 用硬盘速度快。
est
2016-02-24 17:06:40 +08:00
mapreduce 是基于 hdfs 的一种姿势。本质就是处理文件。

spark 是基于 rdd 的另一种姿势。本质是处理 data frame 。
HunterPan
2016-02-24 17:10:46 +08:00
spark 可以自动串联多个 job ,普通的 mapreduce 则需要人工
Valyrian
2016-02-24 17:14:23 +08:00
Spark 就是自动化 MapReduce
anonymoustian
2016-02-24 17:22:34 +08:00
@est mapreduce 是 hadoop 吗?
est
2016-02-24 17:28:14 +08:00
@anonymoustian 蛤蛤,指正得对!
swolf119
2016-02-24 17:54:12 +08:00
mapreduce 传教士
spark 后入, 69 ,刚等
zluyuer
2016-02-24 17:59:38 +08:00
MapReduce 是一种处理数据的思路,经典实现是 Hadoop 框架,实现方式是离线批处理,也就是中间结果会写入磁盘,然后由框架的不同部分读取。 Spark 的思路与此类似,不同的是尽量在内存中存储中间结果(内存不足时也会写入磁盘),加速了计算过程。由于内存越来越廉价, Spark 代表了未来的一种趋势。另外一个区别的地方在于 Hadoop 主力语言是 Java ,而 Spark 平等兼容 Java / Scala / Python 。
min
2016-02-24 20:46:34 +08:00
google 出了个 paper 说明了 mr 的原理,但是没有放出内部的 mr 框架实现
yahoo 按照 paper 做了 hadoop ,实现了 mr ,不过效率一般
spark 提供了一系列 api 用来处理数据,包括了 mr , spark 做 mr 效率比 hadoop 高

#2 楼说得不是很准确
hdfs 是 hadoop 框架下用来存超大数据的分布式存储系统实现, spark 也可以存取 hdfs 中的数据
spark data frame 是基于 spark rdd 的
Landarky
2016-02-24 22:05:40 +08:00
spark 官网首页就是对比。。没有什么比它更直接了
del1214
2016-02-25 09:25:12 +08:00
@swolf119 老司机求带
wwttc
2016-02-25 10:18:49 +08:00
1. MapReduce 是一个编程模型,也是一个处理超大规模数据集的算法模型实现。使用 Mapreduce 模型,用户只需实现 Map 和 Reduce 函数,就可以轻松的实现大规模并行化计算。

2. Spark 与 Hadoop 都是大数据框架。 Spark 的大部分操作都是在内存中,而 Hadoop 的 MapReduce 任务会在每次操作之后都将数据写回到物理存储介质中。因此, Spark 的速度会比 Hadoop 快很多。 Spark 除了提供 Map 和 Reduce 操作之外,还支持 SQL 查询、流数据 Spark Streaming 、图处理 GraphX 以及常用的机器学习库 MLib 等。

Spark 经常运行于 Hadoop 上(因为 Spark 本身并没有分布式存储系统,需要 Hadoop 的 HDFS ),可以简单理解为 Spark 可以取代 Hadoop 中的 MapReduce 。
anonymoustian
2016-02-25 11:28:54 +08:00
@wwttc 请问这句话怎么理解? Spark 经常运行于 Hadoop 上 ? 既然 Spark 与 Hadoop 都是大数据框架,那么 Spark 是如何在一个大数据框架上运行另外一个大数据框架的?
qqzj
2016-02-25 12:25:25 +08:00
@anonymoustian Hadoop 是一个数据处理框架,包含很多组件, Mapreduce 是数据处理的模型,本质上是函数式编程, HDFS 是 Hadoop 框架下的大数据存储组件,用来存储海量数据的。 Spark 是一种新的数据处理模型,在 MR 的基础上做了很多改进,但在某些情况下,如内存不足其也会退化到 MR 。 Hadoop 2.0 之后采用 Yarn 来做资源管理,将资源管理和数据计算进一步组件化,既然 MR 是一个组件,当然可以用 Spark 来替换 MR 做数据处理,所以说 Spark 运行在 Hadoop 上。现在 Spark 社区很火热,出了很多东西,做大数据的得跟进下
LINEX
2016-02-25 13:47:06 +08:00
@zluyuer hadoop 不是也有其他语言的 api 的吗
zluyuer
2016-02-25 14:52:15 +08:00
@LINEX 只能用 Hadoop Streaming 通过 std io 桥接数据流,不是原生语言支持
LINEX
2016-02-25 16:46:35 +08:00
@zluyuer 额,我一直还以为 spark 的 python api 也是用的 std io 桥接的。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/258781

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX