在内部使用 Spark Map-Reduce?

Use Spark internally Map-Reduce?

Spark 是否在内部使用 Map Reduce? (他自己的 map reduce)

第一次听到有人告诉我,"Spark use map-reduce",我很困惑,我一直都知道 spark 是 Hadoop-Map Reduce 的大敌。

签入后 Google 我刚刚发现一个网站对此做出了一些过于简短的解释:https://dzone.com/articles/how-does-spark-use-mapreduce

但互联网的其余部分是关于 Spark 与 Map Reduce 的。

有人向我解释说,当 spark 生成 RDD 时,数据会拆分到不同的数据集中,如果您使用的是例如 SPAR.SQL 不应该是 map reduce 的查询,例如:

select student 
from Table_students 
where name = "Enrique"

Spark 内部正在执行 map reduce 以检索数据(来自不同的数据集)。

这是真的吗?

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

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

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

所以,Spark可以编写map-reduce程序,但实际上内部使用的是DAG。

参考: