在内部使用Spark Map Reduce



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

当我第一次听到有人告诉我,"Spark使用map reduce"时,我很困惑,我总是知道Spark是Hadoop map reduce的主要对手。

在谷歌上查看后,我发现一个网站对此做了一些简短的解释: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 reduces使用批处理。。

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

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

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

参考:

Apache Spark中的有向无循环图DAG
  • Apache Spark中的有向非循环图是什么
  • Apache Spark围绕其DAGexecution引擎及其整体架构有哪些概念
  • 如何:从MapReduce转换为Apache Spark
  • 相关内容

    • 没有找到相关文章

    最新更新