【问题标题】:How mapping/reducing phases work in Spark映射/归约阶段如何在 Spark 中工作
【发布时间】:2015-03-10 06:07:41
【问题描述】:

我来自 MapReduce 背景,对 Spark 很陌生。我找不到解释 MapReduce 和 Spark 之间架构差异的文章。到目前为止,我的理解是 MapReduce 和 Spark 的唯一区别是“内存中”处理的概念。也就是说,Spark 具有映射/缩减阶段,它们可能在集群内的两个不同节点上运行。具有相同密钥的对被转移到同一个减速器,并且涉及一个洗牌阶段。我对么?或者在映射和归约阶段的完成方式上存在一些差异......

【问题讨论】:

标签: apache-spark


【解决方案1】:

我认为这很直接,所以我不介意将您指向我写的博客文章:

http://blog.cloudera.com/blog/2014/09/how-to-translate-from-mapreduce-to-apache-spark/

Spark 是 MapReduce 的一个大型超集,从某种意义上说,您可以使用 Spark 运算符表达 MapReduce,但也可以使用许多其他东西。它有大量的小型操作,您可以从中构建管道。所以没有 1:1 的映射,但是,您可以确定有多少 MapReduce 元素对应于 Spark。或者:MapReduce 实际上为您提供了两个操作,它们的功能远不止“map”和“reduce”,目前这可能并不明显。

【讨论】:

  • 感谢博文没有谈论架构差异,例如改组有何不同,reducer 是否在不同的节点上运行?等等...
  • 架构非常不同,很难比较。没有减速器之类的东西。 Shuffle 其实也差不多。
  • 如果没有reducer这样的东西,reduceByKey函数是如何工作的?不是所有具有相同密钥的对都被转移到同一个节点以减少吗?
  • 这些通常是由执行者执行的任务。没有专门的reduce进程
猜你喜欢
  • 2015-07-08
  • 2010-09-30
  • 1970-01-01
  • 2012-11-12
  • 2012-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多