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减少了吗?
答案 0 :(得分:2)
Spark具有支持循环数据流的高级有向非循环图(DAG)引擎。每个Spark作业都会创建要在集群上执行的任务阶段的DAG。与使用两个预定义阶段创建一个DAG的MapReduce(即Map和Reduce)相比,Spark创建的DAG可以包含任意多个阶段。 DAG是MapReduce模型的严格概括。 这样一来,某些作业比MapReduce的完成速度更快,只需一个阶段即可完成简单的作业,而在多个阶段的一次运行中即可完成更复杂的任务,而不必将其拆分为多个作业。
因此,Spark可以编写map-reduce程序,但实际上在内部使用DAG。
参考: