内部使用Spark Map-Reduce?

时间:2019-02-03 09:37:31

标签: apache-spark mapreduce apache-spark-sql rdd

Spark是否在内部使用Map Reduce? (他自己的地图缩小)

我第一次听到有人告诉我“ Spark use map-reduce”时,我感到非常困惑,我始终了解到spark是反对Hadoop-Map Reduce的伟大对手。

在Google签入后,我发现一个网站对此进行了简短说明:https://dzone.com/articles/how-does-spark-use-mapreduce

但是Internet的其余部分与Spark vs Map Reduce有关。

比有人解释我,当spark进行RDD时,数据被拆分为不同的数据集,如果您使用的是SPAR.SQL,则该查询不应该是map,如:

select student 
from Table_students 
where name = "Enrique"

Spark内部进行了地图缩小以从不同的数据集中检索数据。

是真的吗?

如果我使用Spark Mlib进行机器学习,我总是听说机器学习与map reduce不兼容,因为它需要大量的交互,而map reduce使用批处理。.

在Spark Mlib中,Spark内部也使用Map减少了吗?

1 个答案:

答案 0 :(得分:2)

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

因此,Spark可以编写map-reduce程序,但实际上在内部使用DAG。

参考: