Spark内部使用Map-Reduce吗?

问题描述 投票:0回答:1

Spark内部使用MapReduce吗? (自带地图缩小)

第一次听到有人告诉我,“Spark 使用 Map-Reduce”,我很困惑,我总是知道 Spark 是 Hadoop Map-Reduce 的替代品。

在 Google 上查看后,我发现一个网站对此做了一些太简短的解释:https://dzone.com/articles/how-does-spark-use-mapreduce

但是互联网的其余部分只比较 Spark 和 Map-Reduce。

然后有人向我解释说,当 Spark 创建 RDD 时,数据会分割到不同的数据集中,如果您使用例如 SPAR.SQL 的查询,则不应是映射缩减,例如:

select student 
from Table_students 
where name = "Enrique"

Spark 内部正在执行映射缩减来检索数据(来自不同的数据集)。

这是真的吗?

如果我使用 Spark Mlib,要使用机器学习,我总是听说机器学习与 MapReduce 不兼容,因为它需要很多交互,而 MapReduce 使用批处理..

在 Spark Mlib 中,Spark 内部也使用 Map reduce 吗?

apache-spark mapreduce apache-spark-sql rdd
1个回答
8
投票

Spark 具有先进的有向无环图 (DAG) 引擎,支持循环数据流。每个 Spark 作业都会创建一个要在集群上执行的任务阶段的 DAG。与 MapReduce 创建具有两个预定义阶段(Map 和 Reduce)的 DAG 相比,Spark 创建的 DAG 可以包含任意数量的阶段。 DAG 是 MapReduce 模型的严格概括。 这使得某些作业比 MapReduce 更快地完成,简单的作业只需一个阶段即可完成,而更复杂的任务则在多个阶段的单次运行中完成,而不必拆分为多个作业。

所以,Spark可以编写map-reduce程序,但实际上在里面使用DAG。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.