【问题标题】:Use Spark internally Map-Reduce?在内部使用 Spark 的 Map-Reduce?
【发布时间】:2019-06-27 08:03:49
【问题描述】:

Spark 是否在内部使用 Map Reduce? (他自己的地图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 reduce 使用批处理..

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

【问题讨论】:

  • 我认为您对 Hadoop 的 MapReduce 和 MapRecude 算法感到困惑。 Spark Mlib 仍然使用 map reduce 。所以问题可能会变成[为什么 spark 对于机器学习来说更快或更好] (stackoverflow.com/questions/32572529/…)
  • 嗨@howie,好吧......“为什么火花更适合机器学习”不是我的问题,我真正的问题是:“它是真的,火花在内部使用 map reduce”你说“Spark Mlib 仍然使用 map reduce”,怎么样?我在哪里可以找到有关此的更多信息。谢谢回答
  • 让我澄清一下您的问题,您知道 Spark 的 MapReduce 和 Hadoop 的 MapReduce 之间的区别吗?如果没有,这个视频有很好的答案youtube.com/watch?v=iaw5kG9q6xw。或者您的问题是 Spark Mlib 如何将 map reduce 用于机器学习程序?
  • 对不起~我想更正我的回答。实际上火花使用 DAG(有向无环图)而不是传统的 mapreduce。您可以将其视为 Map Reduce 的替代方案。虽然 MR 只有两个步骤(map 和 reduce),但 DAG 可以有多个可以形成树结构的级别。所以你可以在 spark 中编写类似 mapreduce 的程序,但内部 spark 运行在 DAG 上

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


【解决方案1】:

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

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

参考:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 2015-08-13
    • 2022-01-08
    • 1970-01-01
    • 2020-10-15
    • 2021-09-22
    • 2016-07-18
    相关资源
    最近更新 更多